\ 在VB中执行整数除法吗?
在 VB.NET 中,即使两个操作数都是整数,/
运算符也会导致该值为浮点型(如果结果为非整数)。
因此,我尝试使用 \
运算符,它会产生整数值,而与操作数无关。
所以我认为 \
是整数除法。
2.5 \ 3
结果为0
。
现在我尝试了1.5 \ 2
。我预计它是 0
,但结果是 1
。
现在,这是错误还是正确的结果?\
运算符实际上是什么?
如果这是一个错误,那么它在 VB6 中就一直存在。
In VB.NET even if both the operands are integer, the /
operator will cause the value to be floating point (if the result is non integer).
So I tried with the \
operator which yields integer value irrespective of the operands.
So I thought \
is integer division.
2.5 \ 3
results in 0
.
Now I tried 1.5 \ 2
. I expected it to be 0
but it resulted in a 1
.
Now, is it a bug or a correct result?
What the \
operator actually is?
If it's a bug it exists right through VB6.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果对非整数使用
\
,首先将它们转换为整数,这会导致舍入:相当于CLng(1.5 )\2
,即2\2
或1
。如果您使用
Option Strict On
,那么您将看到这种情况发生。If you use
\
on non-integers, you first convert them to integers, which causes rounding: the equivalent ofCLng(1.5) \ 2
, which is2 \ 2
or1
.If you use
Option Strict On
then you will see this taking place.请参阅文档中的
备注
部分:这意味着 1.5 \ 2 变为 2 / 2,即 1。
银行家舍入(来自 类型转换功能):
See the
Remarks
-Section in the Documentation:That means 1.5 \ 2 becomes 2 / 2 which is 1.
Banker's rounding (from Type Conversion Functions):
不是错误,只是结果四舍五入到最接近的整数。
运算符 / 用于在数字和整数(浮点数或双精度数)之间进行除法,不要忘记 Decimal 类型。
问候。
not a bug, but simply the result is rounded to the nearest whole number.
The operator / is used to make a division between numbers and integers float or double, not forgetting also the Decimal type.
Regards.