6 ポイント 投稿者 kunggom 2020-01-07 | まだコメントはありません。 | WhatsAppで共有

コンピュータで整数ではない実数を表現する際に主に使われる浮動小数点(Floating point)方式は、非常に広い範囲の数値を表現できるという利点がある一方、あくまで近似値による表現にすぎないため、誤差があり、正確な数値表現や計算ができないという欠点があります。また、すべての言語で処理が同一である保証はない点にも注意が必要です。このような各言語における少しずつ異なる浮動小数点処理については、https://0.30000000000000004.com/ で確認できます。

Python(おおよそ 3.5 以降のバージョン)で、浮動小数点誤差による問題があるときに、それを解決できる方法を説明した文書を紹介します。(韓国語) 最もすっきりした解決策は decimal モジュールを導入して十進数型を使うことだそうです。二進法の浮動小数点が問題なら、人間のように十進法で計算すれば問題ない、という発想です。実際に金融や会計など、小数点計算が正確でなければならない分野でもこの方法が使われているそうです。

p.s.

参考までに、IBMメインフレームに搭載されるCPUには、ハードウェア的に十進数を計算する機能が組み込まれていることで知られています。銀行などでは、今でもメインフレームを使っているところが多いですからね。

まだコメントはありません。

まだコメントはありません。