【发布时间】:2011-02-14 08:03:10
【问题描述】:
这是直接来自我的 VBE(MS Excel 2007 VBA)的小宝石:
?clng(150*0.85)
127
x = 150*0.85
?clng(x)
128
谁能解释这种行为?恕我直言,第一个表达式应该产生 128(0.5 舍入到最接近的偶数),或者至少应该两个结果相等。
【问题讨论】:
-
很奇怪。
CLng(CDbl(150*0.85))修复它。Round(150*0.85)也是。 -
CSng 也是如此。我的理论是这是一个浮点错误。
标签: vba casting rounding floating-accuracy