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