很久以前,我的公司出现了一些意想不到的结果,我发现了这个问题:
Dim k As Double
Dim r As Integer
k = 182.5
r = Round(k,0)
r 的结果是 182,这给我的公司造成了问题,现在我必须修复它。
问题是我观察到了这一点:
Dim k As Double
Dim r As Integer
k = 186.5
r = Round(k,0)
r = 187
当 double 数的整数部分的单位大于 5 时,Round 会按照我的预期进行,但对于单位 <=5 则不会。
我怎么解决这个问题?是否有另一个函数来获得正确的舍入?
最佳答案
这称为银行家四舍五入,并尝试根据最接近的数字是奇数还是偶数在 0.5 上分配四舍五入。
要四舍五入 .5:
cint(format(182.5, "#0")) ''183
cint(format(186.5, "#0")) ''187
关于VB6 Round(x,0) 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40548777/