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

数値がどのように、なぜ表され、操作されるかについては、多くの説明があります。ウィキペディアまたは Google を使用して開始します。

ここで一例を見てください(xkcdで完成!)。

于 2012-05-18T13:46:03.040 に答える