カテゴリ: JavaScript 更新日: 2025/12/10

JavaScriptの数値演算で発生するよくあるエラーと対処法

JavaScriptの数値演算で発生するよくあるエラーと対処法
JavaScriptの数値演算で発生するよくあるエラーと対処法

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptで数字を使った計算をするときに、思わぬ結果になることがあります。これはなぜですか?」

先生

「それはJavaScriptの数値演算が持つ特性や注意点によるものです。特に小数の計算や特別な値の扱いでエラーや予期しない結果が出やすいです。」

生徒

「具体的にはどのようなエラーですか?」

先生

「代表的なものとして、浮動小数点の誤差、ゼロ除算、NaNの発生があります。それぞれの原因と対処法を詳しく見ていきましょう。」

1. 浮動小数点の誤差

1. 浮動小数点の誤差
1. 浮動小数点の誤差

JavaScriptでは小数を二進数で表すため、計算結果にわずかな誤差が生じることがあります。これは「浮動小数点誤差」と呼ばれ、特に金融計算などで注意が必要です。


console.log(0.1 + 0.2); // 0.30000000000000004

0.30000000000000004

対処法としては、toFixedで小数点の桁数を指定したり、整数に変換して計算する方法があります。


let result = (0.1 * 10 + 0.2 * 10) / 10;
console.log(result); // 0.3

0.3

2. ゼロでの除算

2. ゼロでの除算
2. ゼロでの除算

数値をゼロで割ると、JavaScriptではエラーを投げるのではなく、特殊な値が返されます。正のゼロで割るとInfinity、負のゼロで割ると-Infinityになります。


console.log(10 / 0);   // Infinity
console.log(-10 / 0);  // -Infinity

Infinity
-Infinity

Infinityや-Infinityは数値型ですが、計算に使うと予期せぬ結果になることがあるため、事前にisFiniteでチェックすると安全です。

3. NaN(Not a Number)の発生

3. NaN(Not a Number)の発生
3. NaN(Not a Number)の発生

数値計算中に非数の値を操作すると、NaN(Not a Number)が返されます。これは計算が無効であることを示す特別な値です。


console.log("abc" / 2);   // NaN
console.log(Math.sqrt(-1)); // NaN

NaN
NaN

NaNが計算に混ざると、以降の計算もNaNになってしまうので、isNaNNumber.isNaNで判定して処理を分けることが重要です。

4. 大きすぎる数値や小さすぎる数値

4. 大きすぎる数値や小さすぎる数値
4. 大きすぎる数値や小さすぎる数値

JavaScriptの数値型はNumberで表されますが、扱える最大値と最小値があります。これを超えるとInfinityや- Infinityになります。


console.log(Number.MAX_VALUE * 2); // Infinity
console.log(Number.MIN_VALUE / 2); // 0

Infinity
0

計算前にNumber.isFiniteを使って範囲チェックを行うと、想定外の結果を防げます。

5. 対処法のまとめ

5. 対処法のまとめ
5. 対処法のまとめ

数値演算で発生するよくあるエラーの対策は以下の通りです。

  • 浮動小数点誤差:toFixedや整数化で対応
  • ゼロ除算:isFiniteでチェック
  • NaNの発生:isNaNNumber.isNaNで確認
  • 数値の範囲外:Number.MAX_VALUENumber.MIN_VALUEを使ってチェック

これらを意識することで、JavaScriptの数値演算でのトラブルを大幅に減らせます。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう