小数を綺麗に計算させる方法を考えてみた
(2025.07.14)
(2025.07.14)
コンピュータの正確な小数の計算方法を考えてPythonでプログラムにしてみた。
プログラム内での小数の計算結果がズレるという話を聞き、実際に問題だと感じた。
Python(自分の実装の場合)
小数を扱う場合に数値の誤差が出るため、それを回避する形で数値を処理する
コンピュータ内で少数を扱うとき、2進数での記憶方法によりどうしても誤差が生まれる場合がある(直接小数自体を表現することは難しい)
整数を計算する場合はそのような誤差は起こらないため、手順を踏んで整数の範囲内で計算を可能にしたい
例えば0.1の場合、1÷10のような形で処理することにする(÷10で誤差は発生しない)
同じように、0.6-0.4などは(6÷10)-(4÷10)=(6-4)÷10、0.24-0.2なら(24÷100)-(20÷100)=(24-20)=100=0.04
…というように÷10をあらかじめ除外して少数レベルでの計算をなくしてしまうという方法だ
プログラムを実行し、カンマで区切った少数を2つ入力することで、足し算あるいは引き算を行う
※このプログラムでは0以上1未満の小数のみ対応
以下のリンクからプログラムの公開ページにアクセスできる。
tag:計算,小数,正確,対処法