即使两个操作数都是整数,'/'运算符也会导致值浮动(如果结果是非整数)。
所以我尝试使用'\'运算符产生整数值而不管操作数。
所以我认为'\'是整数除法
2.5 \ 3结果0
现在我试过了
1.5 \ 2
我预计它会为0,但结果为1
现在,这是一个错误还是正确的结果?
实际上是什么'''运算符?
如果它是一个错误,它通过VB6存在
答案 0 :(得分:15)
如果您对非整数使用\
,则首先将它们转换为整数,这会导致舍入:相当于CLng(1.5) \ 2
,这是2 \ 2
或1
。
如果你使用Option Strict On
,那么你会看到这种情况发生。
答案 1 :(得分:4)
请参阅Documentation中的Remarks
- 部分:
在执行除法之前,Visual Basic会尝试转换任何内容 浮点数字表达式为Long。 ...转换为Long 也受到银行家的舍入。
这意味着1.5 \ 2变为2/2,即1。
银行家的四舍五入(来自Type Conversion Functions):
如果小数部分恰好为0.5,则整数转换函数将其四舍五入为最接近的偶数整数。例如,0.5轮到0轮,1.5和2.5轮到2轮。这有时被称为银行家的舍入,其目的是弥补在将许多这样的数字加在一起时可能累积的偏差。
答案 2 :(得分:2)
不是错误,只是将结果四舍五入到最接近的整数。 operator /用于在数字和整数之间进行浮点或双精度的划分,而不是忘记十进制类型。
问候。