运行round(132.5)
输出的是: 132
再运行1次
输出的是: 133
之后就一直是输出132
为什么会出现这种情况呢??
4 个解决方案
#1
四舍六入五成双
#2
Option Explicit
Private Sub Form_Load()
Debug.Print Round(132.5)
Debug.Print Round(131.5)
End Sub
每次都输出132,没有一次输出133的啊
#3
的确没有楼主所说问题。
#4
当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和 Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。
#1
四舍六入五成双
#2
Option Explicit
Private Sub Form_Load()
Debug.Print Round(132.5)
Debug.Print Round(131.5)
End Sub
每次都输出132,没有一次输出133的啊
#3
的确没有楼主所说问题。
#4
当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和 Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。