在VB中是\整数除法?

时间:2011-08-26 05:53:53

标签: vb.net

在VB.NET中

即使两个操作数都是整数,'/'运算符也会导致值浮动(如果结果是非整数)。
所以我尝试使用'\'运算符产生整数值而不管操作数。

所以我认为'\'是整数除法

2.5 \ 3结果0

现在我试过了     1.5 \ 2
我预计它会为0,但结果为1 现在,这是一个错误还是正确的结果? 实际上是什么'''运算符?

如果它是一个错误,它通过VB6存在

3 个答案:

答案 0 :(得分:15)

如果您对非整数使用\,则首先将它们转换为整数,这会导致舍入:相当于CLng(1.5) \ 2,这是2 \ 21

如果你使用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 /用于在数字和整数之间进行浮点或双精度的划分,而不是忘记十进制类型。

问候。