parseFloat関数

広告

文字列を数値に変換するにはparseFloat関数を使います。

文字列を数値に変換します。

パラメータ:
  str  対象の文字列
戻り値:
  変換された数値。対象の文字列を数値に変換できない場合はNaN

引数に指定された文字列を数値に変換します。文字列は先頭の文字から順に調べていき、数値でない文字が現れる直前までの文字列を数値に変換します。数値と判断される文字は先頭の「+」又は「-」及び数字、小数点を表すドット(.)や指数表現の時に使用する「e」などです。

parseFloat("10")        -->  10
parseFloat("2008year")  -->  2008
parseFloat("-77point")  -->  -77
parseFloat("18.26B")    -->  18.26
parseFloat("2.4e-3")    -->  0.0024

文字列の先頭の文字が数値でない文字だった場合にはNaNを返します。

parseFloat("Book170")   -->  NaN

perseInt関数では16進数の形式である「0x2F」なども整数と識別されましたが、parseFloat関数ではAからFのアルファベットは数値を表す文字とは認識されません。(指数形式の時に使用するe及びEを除く)。文字列の先頭が「0x」で始まっている場合は単に0と識別されます。

parseFloat("0x3F")      -->  0
parseFloat("4F")        -->  4

最後に空文字はNaNを返します。

parseFloat("")          -->  NaN
サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script2_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

document.write("<p>");

print("parseFloat('10') = " + parseFloat("10"));
print("parseFloat('-2008year') = " + parseFloat("-2008year"));
print("parseFloat('0x3F') = " + parseFloat("0x3F"));
print("parseFloat('4F') = " + parseFloat("4F"));
print("parseFloat('18.26B') = " + parseFloat("18.26B"));
print("parseFloat('2.4e-3') = " + parseFloat("2.4e-3"));
print("parseFloat('2.4ea') = " + parseFloat("2.4ea"));
print("parseFloat('Book170') = " + parseFloat("Book170"));
print("parseFloat('') = " + parseFloat(""));

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p2-1

( Written by Tatsuo Ikura )