広告スペース(バナー)
🐍Python レッスン
基本文法の基礎8
データ構造とオブジェクト指向8
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 58 / 69

浮動小数点の誤差に気をつけよう

このレッスンでは、コンピュータが小数を扱う際に生じる誤差について学び、金額計算などで注意すべきポイントを理解することを目標にします。「Python 0.1 0.2 誤差」で検索している方向けの内容です。

コンピュータは小数を2進数で扱うため、0.1 + 0.2のような単純な計算でも、ぴったり0.3にならないことがあります。表示すると誤差がそのまま見え、比較するとFalseになります。これはPythonだけでなく、多くのプログラミング言語に共通するコンピュータの仕組みに起因するものです。

サンプルコードでは、0.1 + 0.2を実行すると0.30000000000000004という誤差を含んだ値が表示され、0.1 + 0.2 == 0.3という比較がFalseになる様子を確認できます。プログラミング初心者が最初に驚く仕様の1つで、「コンピュータの計算は絶対に正確」という思い込みを覆す体験になります。

金額計算などで小数の誤差が問題になる場合は、decimalモジュールを使うなど、誤差が出ない工夫が必要です。誤差の存在を前提に、ぴったり等しいかではなく「十分近いか」で比較するmath.isclose()という関数も用意されています。

会計システムやECサイトの価格計算では、こうした誤差が思わぬ金額のズレを生むことがあるため、実務では専用のライブラリや整数ベースの計算を使うことが一般的です。この特性を踏まえた対策が欠かせません。

Python
OUTPUT / 実行結果

💡 初回実行時はPythonエンジンの読み込みに数秒かかります。

🎯
ここまでできればゴール達成!
金額計算で誤差が出ないよう工夫された、正確な電卓が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)