Javaで0.1+0.2を計算すると0.30000000000000004になったり、10.0-9.9を計算すると、0.09999999999999964になったりするのはなぜですか? 参考書では。 「浮動小数点数を使った計算では、一見正確な値が計算されてるように見えてもほとんど場合内部では少しだけ誤差を含んだ値を持ってると、考えた方がいいでしょう。どのような計算を行った時にどの程度の誤差が出るのかは難しい話題になるのでこの本では詳しく説明しませんが、例えば100.0-99.99のように同じぐらいの数同士で引き算を行うと誤差が現れやすくなります。」 と書いてありました。 この本ではこれだけで説明が終わりました。 なぜ浮動小数点で計算を行うと誤差が出るのか詳しく教えていただけると助かります。
↧