この記事は技術レビューを必要としています。ぜひご協力ください。
この記事は編集レビューを必要としています。ぜひご協力ください。
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 |
|---|---|---|---|---|---|---|
| 基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |