広告スペース(バナー)
🟨JavaScript レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向8▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 58 / 69
浮動小数点の誤差に気をつけよう
このレッスンでは、コンピュータが小数を扱う際に生じる誤差について学び、金額計算などで注意すべきポイントを理解することを目標にします。「JavaScript 0.1 0.2 誤差」で検索している方向けの内容です。
コンピュータは小数を2進数で扱うため、0.1 + 0.2のような単純な計算でも、ぴったり0.3にならないことがあります。表示すると誤差がそのまま見え、比較するとfalseになります。これはJavaScriptだけでなく、多くのプログラミング言語に共通するコンピュータの仕組みに起因するものです。
サンプルコードでは、0.1 + 0.2を実行すると0.30000000000000004という誤差を含んだ値が表示され、0.1 + 0.2 === 0.3という比較がfalseになる様子を確認できます。プログラミング初心者が最初に驚く仕様の1つで、「コンピュータの計算は絶対に正確」という思い込みを覆す体験になります。
金額計算などで小数の誤差が問題になる場合は、円ではなく銭単位の整数で計算するなど、誤差が出ない工夫が必要です。小数を直接比較するのではなく、「差が非常に小さければ等しいとみなす」という許容誤差を設ける方法もよく使われます。
金額計算などシビアな精度が求められる場面では、この特性を踏まえた対策が欠かせません。会計システムやECサイトの価格計算では、こうした誤差が思わぬ金額のズレを生むことがあるため、実務では専用のライブラリや整数ベースの計算を使うことが一般的です。
JavaScript
OUTPUT / 実行結果
💡 console.log() の内容が実行結果に表示されます。
🎯
ここまでできればゴール達成!
金額計算で誤差が出ないよう工夫された、正確な電卓が作れるようになります。
金額計算で誤差が出ないよう工夫された、正確な電卓が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)