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
为什么它没有正确舍入?我该如何解决这个问题?
答案 0 :(得分: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
关于如何以及为什么表示和操纵数字,有很多解释;只需使用维基百科或谷歌即可开始使用。
请参阅one example here(完整版xkcd!)。