コンテンツにスキップ

JavaScript/parseFloat

出典: フリー教科書『ウィキブックス(Wikibooks)』

parseFloat() は、文字列を解析して浮動小数点数を返すJavaScriptの組み込み関数です。この関数は、文字列が浮動小数点数として解釈可能な部分を数値として抽出し、それを返します。文字列の先頭から解析を開始し、数値部分が見つかった場合にその数値を返し、数値以外の部分が現れると、それ以降の文字は無視されます。

構文

[編集]
parseFloat(string)

引数

[編集]
  • string 解析対象の文字列です。string は必ずしも文字列である必要はなく、任意の型の値を指定できます。非文字列型の値は自動的に文字列に変換されます。

例:

[編集]
parseFloat("3.14");   // 3.14
parseFloat("10.5abc"); // 10.5
parseFloat("abc10.5"); // NaN

戻り値

[編集]

parseFloat() は、指定された文字列の最初に現れる浮動小数点数を解析し、その数値を返します。文字列の先頭に浮動小数点数が存在しない場合は NaN(Not-a-Number)を返します。

  • 数値が見つかった場合は、その数値を浮動小数点数として返します。
  • 数値が見つからなかった場合(または解析できない場合)は、NaN を返します。

例:

[編集]
parseFloat("123.45");  // 123.45
parseFloat("0.001");   // 0.001
parseFloat("10.5abc"); // 10.5
parseFloat("abc10");   // NaN

特徴

[編集]

parseFloat() は、文字列の最初の部分を解析し、浮動小数点数として解釈可能な部分だけを取り出します。文字列内に数値以外の文字が含まれていても、それらの文字は無視されます。ただし、数値部分が最初にない場合は NaN が返されます。

  • 空白は無視され、文字列の先頭に余分な空白があっても解析されます。
  • +- の符号、指数表記(例:1e2)もサポートされます。
  • 浮動小数点の精度に関しては、JavaScriptの内部表現に依存します。

例:

[編集]
parseFloat("  123.45 "); // 123.45
parseFloat(" -0.98 ");    // -0.98
parseFloat("1e2");        // 100

NaN の取り扱い

[編集]

parseFloat() は、数値を解析できない場合に NaN を返します。この場合、NaN はJavaScriptの特別な値で、"Not-a-Number" を意味します。NaN は数値と比較しても常に false を返すため、特別な方法でその判定を行う必要があります。isNaN() 関数を使用して NaN かどうかを確認できます。

例:

[編集]
const result = parseFloat("abc");
console.log(result);       // NaN
console.log(isNaN(result)); // true

使用例

[編集]

以下にいくつかのparseFloat()の使用例を示します。

  1. 文字列から数値を抽出:
    const value = parseFloat("100.25px");
    console.log(value); // 100.25
    
  2. 整数の解析:
    const integer = parseFloat("42");
    console.log(integer); // 42
    
  3. 無効な文字列の解析:
    const invalid = parseFloat("abc");
    console.log(invalid); // NaN
    

関連メソッド

[編集]
  • parseInt() - 文字列を解析して整数を返す。parseFloat() と似ていますが、整数部分だけを返します。
  • Number() - より厳密に文字列を数値に変換します。parseFloat() よりも解析の幅が広いですが、数値でない文字列には NaN を返します。

まとめ

[編集]

parseFloat() は、文字列を浮動小数点数として解釈するために使用される関数であり、数値部分が最初に現れた場合にそれを抽出して返します。数値以外の部分は無視され、解析できない場合は NaN を返します。この関数は、ユーザー入力などの数値を扱う際に非常に便利です。