如果您在C#和VB.NET中创建新项目,请直接进入立即窗口并输入:
? 567 / 1000
C#将返回0,而VB.NET将返回0.567。
要在C#中获得相同的结果,您需要输入
? 567 / 1000.0
为什么会出现这种差异?为什么C#在1000之后需要显式小数点?
答案 0 :(得分:34)
整数操作数的/ operator in C# 执行“整数除法”操作(相当于\ operator in VB.NET)。对于VB.NET,它是“正常”除法(将给出小数结果)。在C#中,为了做到这一点,您必须明确地将至少一个操作数强制转换为浮点类型(例如double
)。
答案 1 :(得分:11)
因为在VB.NET中,/
运算符被定义为返回浮点结果。它将其输入扩展到double
并执行除法。在C#中,/
运算符在两个输入都是整数时执行整数除法。
请参阅MSDN了解VB.NET。
除以两个数字并返回浮点结果。
在执行除法之前,任何整数数字表达式都会加宽为Double。
请参阅MSDN了解C#。
除法运算符(/)将第一个操作数除以第二个操作数。所有数字类型都有预定义的除法运算符。
分割两个整数时,结果始终为整数。
要在VB.NET中获得与C#中整数的/
运算符相同的语义,请使用\
operator。
除以两个数字并返回整数结果。
答案 2 :(得分:3)
默认情况下,C#将576/1000视为整数除法,因此得到一个整数作为结果。
在VB.NET中,它将其视为浮点除法。
通过在C#中的数字上添加“.0”,您明确告诉它该数字是浮点数,因此除法也成为浮点数。
答案 3 :(得分:2)
语言不同。在C#中,编译器将这些数字解释为整数并使用整数除法。在VB.NET中,编译器使用浮点除法。
答案 4 :(得分:2)
答案 5 :(得分:0)
VB.Net 中的 C#'s / equalant 是 \
C#.Net:
/ 运算符 将两个数字相除并返回一个整数结果。
VB.Net:
/ 运算符 将两个数字相除并返回浮点结果。
\ 运算符 将两个数字相除并返回一个整数结果。