parseFloat() 関数は、引数として与えられた文字列を解析して浮動小数点数を返します。

構文

parseFloat(value)

引数

value
解析したい値。

返値

与えられた値を解析した浮動小数点数値。値が数値に変換できない場合は、 NaN が返されます。

説明

parseFloat はトップレベル関数で、どのオブジェクトにも関連付けされません。

parseFloat は引数を解析して浮動小数点数を返します。正負記号 (+ か -)、数字 (0-9)、小数点、指数以外の文字があった場合は、その箇所より前の値を返してそれ以降の文字すべてを無視します。文字列の前後に空白があっても構いません。

最初の文字が数値に変換できない場合、 parseFloatNaN を返します。

数値演算において、NaN の値は基数が何であっても数値とは見なされません。 isNaN 関数を呼び出せば parseFloat の結果が NaN かどうか判定できます。 NaN が算術演算子に演算対象として渡された場合、演算結果も NaN となります。

parseFloatInfinity の値も解析して値を返すことが可能です。結果が有限数(Infinity-InfinityNaN ではないもの)であるかどうかの判定には isFinite が使用できます。

parseFloattoString または valueOf メソッドが定義されているオブジェクトも解析することができます。 value が数値の場合は同じ数値を返します。

使用例

数を返す parseFloat

以下の例はすべて 3.14 を返します。

parseFloat(3.14);
parseFloat('3.14');
parseFloat('314e-2');
parseFloat('0.0314E+2');
parseFloat('3.14more non-digit characters');

var foo = Object.create(null);
foo.toString = function () { return "3.14"; };
parseFloat(foo);

var foo = Object.create(null);
foo.valueOf = function () { return "3.14"; }; 
parseFloat(foo);​​​​​

NaN を返す parseFloat

以下の例は NaN を返します。

parseFloat('FF2');

より厳密な構文解析関数

より厳密に値を構文解析する方法があれば何かと便利です、それには正規表現が役に立ちます。

var filterFloat = function(value) {
    if (/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/
      .test(value))
      return Number(value);
  return NaN;
}

console.log(filterFloat('421'));               // 421
console.log(filterFloat('-421'));              // -421
console.log(filterFloat('+421'));              // 421
console.log(filterFloat('Infinity'));          // Infinity
console.log(filterFloat('1.61803398875'));     // 1.61803398875
console.log(filterFloat('421e+0'));            // NaN
console.log(filterFloat('421hop'));            // NaN
console.log(filterFloat('hop1.61803398875'));  // NaN

このコードはあくまでも一例であることに注意してください。このコードは 1..5 といった JavaScript では有効な数であっても利用できません。

仕様

使用 状況 コメント
ECMAScript 1st Edition (ECMA-262) 標準 初回定義。
ECMAScript 5.1 (ECMA-262)
parseFloat の定義
標準
ECMAScript 2015 (6th Edition, ECMA-262)
parseFloat の定義
標準
ECMAScript Latest Draft (ECMA-262)
parseFloat の定義
ドラフト

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 1IE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報

ドキュメントのタグと貢献者

タグ: 
このページの貢献者: mfuji09, x2357, teoli, ethertank, Potappo, Mgjbot
最終更新者: mfuji09,