vmg*_*vmg 4 floating-point vbscript floating-accuracy ieee-754
VBScript中的此类代码将返回错误的结果:
MsgBox Round(4.99985,4)
Run Code Online (Sandbox Code Playgroud)
它将返回,4.9998但正确的结果是4.9999。我知道这与VBScript如何使用带浮点数的数字有关,有些数字无法用二进制表示,但是请告诉我:
谢谢!
这是预期的结果,即所谓的银行家四舍五入。查看功能说明Round(由我加粗):
Round函数执行从整到整的操作,这与取整到较大的操作不同。...如果表达式恰好位于两个可能的取整值之间的中间位置,则该函数返回其最右边的数字为偶数的可能的取整值。
要四舍五入,可以使用以下函数(从此处获取):
Function RoundToLarger(ByVal Number, ByVal NumDigitsAfterDecimal)
RoundToLarger = CDbl(FormatNumber(Number, NumDigitsAfterDecimal))
End Function
Run Code Online (Sandbox Code Playgroud)
(注意:负数四舍五入。)
| 归档时间: |
|
| 查看次数: |
9897 次 |
| 最近记录: |