1. ホーム
  2. javascript

[解決済み] parseInt('1e1') vs parseFloat('1e1')

2022-02-18 16:12:10

質問

parseInt(1e1); //10
parseInt('1e1'); //1
parserFloat('1e1') //10

なぜ2番目のケースで parseInt は 1 を返すのですか?この3つは同じ結果を返さないはずですが?

解決方法は?

  1. 1e1 は、次のように評価される数値リテラルです。 10 ; parseInt() 見る 10 と嬉しそうに返します。
  2. '1e1' は文字列であり parseInt() は指数表記を認識しないので、最初の文字で停止します。
  3. '1e1' を文字列としてパースしても、floatとしてパースしても全く問題ありません。

ボーナス : parseInt('1e1', 16) リターン 481 3桁の16進数として解析されます。