by jacoby » 2005年7月31日(日) 15:53
初期値 J=4 に 0.1を繰り返し15回
加えるというプログラムを下の様に組みました。
#prompt
Dim J As Double
J=4
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
Print J
Print 5.5=J
答えは 4+0.1*15=5.5となりそうに思えたのですが
実行結果は 5.499999999…となり、5.5との比較では
0(偽)となってしまいます。
元々、For-Nextのループで足していて起こり、念のため
ループを外して15回列記して上のように書いてみたのです
が(リストが縦長になってすみません)、同様の結果でした。
また、初期値のJ=4ですが、他にも 「5」,「6」,「7」,「8」でも
同じような結果になるようです。
これらの演算、何故そうなるのか理由をお知りの方が
おられましたら是非教えてください。
実行環境 AB ver 4.04
(ver 2.62でも確認)
OS Windows Me
初期値 J=4 に 0.1を繰り返し15回
加えるというプログラムを下の様に組みました。
#prompt
Dim J As Double
J=4
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
J=J+.1
Print J
Print 5.5=J
答えは 4+0.1*15=5.5となりそうに思えたのですが
実行結果は 5.499999999…となり、5.5との比較では
0(偽)となってしまいます。
元々、For-Nextのループで足していて起こり、念のため
ループを外して15回列記して上のように書いてみたのです
が(リストが縦長になってすみません)、同様の結果でした。
また、初期値のJ=4ですが、他にも 「5」,「6」,「7」,「8」でも
同じような結果になるようです。
これらの演算、何故そうなるのか理由をお知りの方が
おられましたら是非教えてください。
実行環境 AB ver 4.04
(ver 2.62でも確認)
OS Windows Me