← エラー辞典に戻る

JavaScript

計算結果が NaN になる

文字列を数値に変換していない

こんな症状

エラーは出ないのに、計算結果が NaN(Not a Number)と表示される。文字列と数値の計算で起きやすいよ。

まず試す

計算前に Number(値) や parseInt(値) で数値に変換する。input.value は常に文字列。

js
const price = Number(input.value); // 文字列を数値に
const total = price * 2;

これで直らなければ、下の「自分のケース」を確認。

🔍 自分のケースはどれ?

  • input.value をそのまま計算した
    → Number(input.value) で数値に変換してから計算する。
  • 100円 のような単位付き文字列
    → parseInt("100円") は 100 を取り出せる(数字以外は無視される)。
  • 型が分からない
    → console.log(typeof 変数) で確認する。isNaN(値) で NaN 判定もできる。

なぜ起きる?

数値のつもりの変数が実は文字列になっているよ。JavaScriptではinput.valueで取得した値は常に文字列型だから、そのまま計算すると文字列結合になったりNaNになったりするんだ。"100円" * 2 のように数値に変換できない文字列を計算するとNaNになるよ。

✕ エラーが起きるコード
const price = "100円";
const total = price * 2;
// NaN になる
✓ 直したコード
const price = parseInt("100円");
const total = price * 2; // 200

✅ 直ったか確認

計算結果が NaN でなく期待した数値になればOK。

🆘 まだ直らないときは

足し算で文字列結合("1"+"2" が "12")になっていないかも確認しよう。

Q&Aで質問する →

この解決法は役立ちましたか?

🔗 関連するエラー

📖 この問題を学べるレッスン

JavaScriptコース(基礎から)で根本から理解する →

✏️ 手を動かして練習

このテーマの図解ドリルで実際に書いて確認する →

📝 関連ブログ記事

📖 関連する用語

🚀 JavaScriptコースで基礎を学ぼう!

エラーの原因を根本から理解するには、基礎を体系的に学ぶのが近道です。完全無料・登録不要。

JavaScriptコースを始める →

❓ 関連するQ&A