HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
View in English Always switch to English
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
parseFloat() 関数は、文字列の引数を解釈し、浮動小数点値を返します。
parseFloat()
function circumference(r) { return parseFloat(r) * 2.0 * Math.PI; } console.log(circumference(4.567)); // 予想される結果: 28.695307297889173 console.log(circumference("4.567abcdefgh")); // 予想される結果: 28.695307297889173 console.log(circumference("abcdefgh")); // 予想される結果: NaN
parseFloat(string)
string
解釈する値。この引数が文字列でない場合、抽象操作 ToString を用いて文字列に変換されます。この引数では先頭のホワイトスペースは無視されます。
ToString
指定された string を解釈した浮動小数点値です。または、最初のホワイトスペース以外の文字が数値に変換できなかった場合は NaN です。
NaN
メモ: JavaScript は、言語レベルでは「浮動小数点数」と「整数」の区別はありません。parseInt() と parseFloat() の違いは、構文解析の挙動だけですが、返値はその型になるとは限りません。例えば、parseInt("42") と parseFloat("42") は同じ値、つまり数値の 42 を返します。
parseInt()
parseInt("42")
parseFloat("42")
parseFloat 関数は、最初の引数を文字列に変換し、その文字列を 10 進数のリテラルとして構文解析し、数値または NaN を返します。この関数が受け入れる数値の構文は、次のように要約できます。
parseFloat
+
-
0
9
.
e
E
"Infinity"
"-Infinity"
Infinity
-Infinity
構文に関しては、parseFloat() は Number() 関数が受け入れる構文のサブセットを構文解析します。 parseFloat() は、0x、0b、0o を接頭辞とする非 10 進リテラルは対応していませんが、それ以外はすべて対応しています。ただし、parseFloat() は、Number() よりも寛容です。これは、Number() では NaN を返す原因となる、末尾の不正な文字を無視するためです。
Number()
0x
0b
0o
数値リテラルおよび Number() と同様に、parseFloat() から返される数値は、浮動小数点範囲および不正確さにより、文字列で表される数値と完全に等しくない場合があります。 -1.7976931348623158e+308 から 1.7976931348623158e+308 の範囲外の数値(Number.MAX_VALUE を参照)の場合は、 -Infinity または Infinity が返されます。
-1.7976931348623158e+308
1.7976931348623158e+308
Number.MAX_VALUE
以下の例はすべて 3.14 を返します。
3.14
parseFloat(3.14); parseFloat("3.14"); parseFloat(" 3.14 "); parseFloat("314e-2"); parseFloat("0.0314E+2"); parseFloat("3.14some non-digit characters"); parseFloat({ toString() { return "3.14"; }, });
以下の例は NaN を返します。
parseFloat("FF2");
ちなみに、文字列 NaN 自体は parseFloat() で受け入れられる構文ではないため、"NaN" を渡すと NaN が返されます。
"NaN"
parseFloat("NaN"); // NaN
数値が 64 ビットの IEEE 754-2019 書式化範囲外の場合、無限大値が返されます。
parseFloat("1.7976931348623159e+308"); // Infinity parseFloat("-1.7976931348623159e+308"); // -Infinity
文字列が "Infinity" または "-Infinity" で始まる場合も、Infinity が返されます。
parseFloat("Infinity"); // Infinity parseFloat("-Infinity"); // -Infinity
BigInt
parseFloat() は BigInt 値を処理しません。n 文字で停止し、それ以前の文字列を通常の整数として処理します。精度が失われる可能性があります。BigInt 値が parseFloat() に渡されると、その値は文字列に変換され、その文字列は浮動小数点数として構文解析されます。この場合も、精度が失われる可能性があります。
parseFloat(900719925474099267n); // 900719925474099300 parseFloat("900719925474099267n"); // 900719925474099300
代わりに、末尾の n 文字を削除した文字列を BigInt() 関数に渡してください。
n
BigInt()
BigInt("900719925474099267"); // 900719925474099267n
Enable JavaScript to view this browser compatibility table.
Number.parseFloat()
Number.parseInt()
Number.prototype.toFixed()