Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

parseFloat()

この記事は技術レビューを必要としています。ぜひご協力ください

この記事は編集レビューを必要としています。ぜひご協力ください

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

構文

parseFloat(string)

引数

string
解析したい値を表す文字列。

説明

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

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

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

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

parseFloat は値 Infinity も解析して値を返すことが可能です。結果が有限数(Infinity-Infinity、もしくは NaN)かどうかの判定には isFinite が使用できます。

使用例

数を返す parseFloat

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

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

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) Standard 初期定義。
ECMAScript 5.1 (ECMA-262)
The definition of 'parseFloat' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'parseFloat' in that specification.
Standard  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) (有) (有)
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)

関連情報

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

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