Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 是否在VB中执行整数除法?_Vb.net_Division_Integer Division - Fatal编程技术网

Vb.net 是否在VB中执行整数除法?

Vb.net 是否在VB中执行整数除法?,vb.net,division,integer-division,Vb.net,Division,Integer Division,在VB.NET中,即使两个操作数都是整数,/运算符也会使值成为浮点值(如果结果是非整数) 因此,我尝试使用\运算符,该运算符不考虑操作数而产生整数值。 所以我认为\是整数除法 2.5\3导致0 现在我尝试了1.5\2。我原以为是0,但结果是1 现在,这是错误还是正确的结果? \操作符实际上是什么 如果它是一个bug,它就通过VB6存在。如果对非整数使用\,首先将它们转换为整数,这会导致舍入:相当于CLng(1.5)\2,即2\2或1 如果您对使用选项Strict,那么您将看到发生这种情况。这不是

在VB.NET中,即使两个操作数都是整数,
/
运算符也会使值成为浮点值(如果结果是非整数)

因此,我尝试使用
\
运算符,该运算符不考虑操作数而产生整数值。
所以我认为
\
是整数除法

2.5\3
导致
0

现在我尝试了
1.5\2
。我原以为是
0
,但结果是
1

现在,这是错误还是正确的结果?
\
操作符实际上是什么


如果它是一个bug,它就通过VB6存在。

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


如果您对使用
选项Strict,那么您将看到发生这种情况。

这不是错误,只是将结果四舍五入到最接近的整数。 运算符/用于在数字和整数之间进行浮点或双精度除法,同时不忘记十进制类型


关于。

请参阅中的
备注部分:

在执行除法之前,Visual Basic会尝试转换任何 浮点数值表达式到长。。。转换为长 也受银行家四舍五入的影响

这意味着1.5\2变为2/2,即1

银行家四舍五入(从):

如果小数部分正好为0.5,则整数转换函数将其四舍五入到最接近的偶数整数。例如,0.5轮为0,1.5和2.5轮均为2。这有时被称为银行家四舍五入,其目的是补偿将许多这样的数字相加时可能累积的偏差


如果是这样的话,那么你会怎么说2.5\3=0???@dotnebeginner它使用四舍五入或“从四舍五入到五舍五入”。因此它实际上是
2\3=0
。请参阅中的备注:“如果小数部分正好是0.5,整数转换函数将其四舍五入到最接近的偶数整数。例如,0.5舍入到0,1.5和2.5都舍入到2。这有时称为银行家舍入,其目的是补偿将多个此类数字相加时可能累积的偏差。”@Dotnebeginner:由于银行家四舍五入(四舍五入到最接近的偶数整数,以帮助抵消过程中出现的一些变化),2.5被四舍五入为2。对于
选项,我不知道,并且从现在起可能会使用+1,成为一个严格的狂热者。@Jean-François Corbett:实际上,你可以在全局范围内打开它,而不是对每个文件单独打开:转到工具->项目和解决方案->VB默认设置,然后打开它。见鬼,把它们都打开!如果你这样做了,那么你将获得类型推断所包含的最大严格性,以使生活更轻松。感谢你的更正,我修复了拼写错误,如果这造成了不适,我向你道歉。顺致敬意,