javascript エラー「Uncaught TypeError: xxx.toFixed is not a function」が発生した場合の対処法

javascript エラー「Uncaught TypeError: xxx.toFixed is not a function」が発生した場合の対処法

javascriptでtoFixedメソッド利用時に、エラー「Uncaught TypeError: xxx.toFixed is not a function」が発生した場合の原因と対処法を記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 102.0.5005.63

エラー全文

テキストフォームから値を取得して「toFixed」メソッドを利用した際に発生

<input type="text" id="text-box" name="name" value="11">

<script>

var val = document.getElementById("text-box").value;

var num = val.toFixed(3);

</script>

エラーメッセージ

Uncaught TypeError: val.toFixed is not a function

firefox 100 でも同様のエラーが発生します。

原因

変数の型が「文字列」として認識されているため

対処法

小数点を含むなら「parseFloat」整数なら「parseInt」を利用する

var num = parseFloat(val).toFixed(3);

or

var num = parseInt(val).toFixed(3);