この記事は技術レビューを必要としています。ぜひご協力ください。
この記事は編集レビューを必要としています。ぜひご協力ください。
parseFloat()
関数は引数として与えられた文字列を構文解析して浮動小数点数を返します。
構文
parseFloat(string)
引数
string
- 解析したい値を表す文字列。
説明
parseFloat
はトップレベル関数で、どのオブジェクトにも関連付けされません。
parseFloat
は引数として与えられた文字列を解析し浮動小数点数を返します。正負記号(+ か -)、数 (0-9) 、小数点、指数以外の文字があった場合は、その箇所より前の値を返してそれ以降の文字すべてを無視します。文字列の前後に空白があっても問題ありません。
最初の文字が数値に変換できない場合 parseFloat
は NaN
を返します。
算術用途において、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 では有効な数であっても利用できません。
仕様
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |