0

vbscript 数学函数:FormatNumber

FormatNumber(4.33 - 4.28, 1, -2, -2, -2) //answer 0.0
FormatNumber(0.05, 1, -2, -2, -2)        //answer 0.1

甚至

FormatNumber(cdbl(4.33) - cdbl(4.28), 1, -2, -2, -2) //answer 0.0

FormatNumber(4.34 - 4.28,1,-2,-2,-2) //answer 0.1

为什么它没有正确四舍五入?我怎样才能解决这个问题?

4

1 回答 1

2

计算机中的浮点数只是数学(现实生活?)数字的近似值。

>> WScript.Echo (4.33 - 4.28)
>>
4,99999999999998E-02
>> WScript.Echo 0.5
>>
0,5
>> WScript.Echo CStr(((4.33 - 4.28) = 0.05))
>>
False

有很多关于如何以及为什么表示和操纵数字的解释。只需使用 Wikipedia 或 Google 即可开始。

请参阅此处的一个示例(使用 xkcd 完成!)。

于 2012-05-18T13:46:03.040 回答