aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript/reference/global_objects/parsefloat/index.html
blob: 97c257bac72b962d00e35160eeddaf7f545b118e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
title: parseFloat()
slug: Web/JavaScript/Reference/Global_Objects/parseFloat
tags:
  - JavaScript
  - Method
  - Reference
  - メソッド
translation_of: Web/JavaScript/Reference/Global_Objects/parseFloat
---
<div>{{jsSidebar("Objects")}}</div>

<p><span class="seoSummary"><code><strong>parseFloat()</strong></code> 関数は、引数を (必要に応じてまず文字列に変換してから) 解釈し、浮動小数点値を返します。</span></p>

<div>{{EmbedInteractiveExample("pages/js/globalprops-parsefloat.html")}}</div>

<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力していただける場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div>

<h2 id="Syntax" name="Syntax">構文</h2>

<pre class="syntaxbox notranslate">parseFloat(<var>string</var>)</pre>

<h3 id="Parameters" name="Parameters">引数</h3>

<dl>
 <dt><code><var>string</var></code></dt>
 <dd>解釈する値。この引数が文字列でない場合、抽象操作 <code><a href="https://tc39.es/ecma262/#sec-tostring">ToString</a></code> を用いて文字列に変換されます。この引数では先頭の{{glossary("whitespace", "ホワイトスペース")}}は無視されます。</dd>
</dl>

<h3 id="Return_value" name="Return_value">返値</h3>

<p>指定された <code><var>string</var></code> を解釈した浮動小数点値です。</p>

<p>または、最初のホワイトスペース以外の文字が数値に変換できなかった場合は {{jsxref("NaN")}} です。</p>

<h2 id="Description" name="Description">解説</h2>

<p><code>parseFloat</code> は最上位関数であり、どのオブジェクトのメソッドでもありません。</p>

<ul>
 <li><code>parseFloat</code> が正の符号 (<code>+</code>)、負の符号 (<code>-</code> U+002D HYPHEN-MINUS)、数値 (<code>0</code><code>9</code>)、小数点 (<code>.</code>)、指数記号 (<code>e</code> または <code>E</code>) 以外の文字に遭遇したら、その文字の前までの値を返し、無効な文字とそれ以降の文字を無視します。</li>
 <li><em>2番目</em>の小数点に遭遇した場合も、解析を停止します (その位置より前までの文字は解析されます)。</li>
 <li>引数にある前後の空白は無視されます。</li>
 <li>引数の最初の文字が数値に変換できない場合 (上記のいずれでもない場合), <code>parseFloat</code>{{jsxref("NaN")}} を返します。</li>
 <li><code>parseFloat</code>{{jsxref("Infinity")}} を解析し、返すことができます。</li>
 <li><code>parseFloat</code>{{jsxref("BigInt")}} の構文を {{jsxref("Number", "Numbers")}} に変換し、精度は下がります。これは最後の <code>n</code> の文字が破棄されるからです。</li>
</ul>

<p>より厳密な構文解析には {{jsxref("Number", "Number(value)")}} を検討してください。これは、引数のどこかに無効な文字があると {{jsxref("NaN")}} に変換します。</p>

<p><code>parseFloat</code>{{jsxref("Object.toString", "toString")}} または {{jsxref("Object.valueOf", "valueOf")}} メソッドが定義されているオブジェクトを解析することもできます。返値は <code>parseFloat</code> がこれらのメソッドの返値で呼び出された場合と同じです。</p>

<h2 id="Examples" name="Examples"></h2>

<h3 id="parseFloat_returning_a_number" name="parseFloat_returning_a_number">数値を返す <code>parseFloat</code></h3>

<p>以下の例はすべて <code>3.14</code> を返します。</p>

<pre class="brush: js notranslate">parseFloat(3.14);
parseFloat('3.14');
parseFloat('  3.14  ');
parseFloat('314e-2');
parseFloat('0.0314E+2');
parseFloat('3.14some non-digit characters');
parseFloat({ toString: function() { return "3.14" } });
</pre>

<h3 id="parseFloat_returning_NaN" name="parseFloat_returning_NaN"><code>NaN</code> を返す <code>parseFloat</code></h3>

<p>以下の例は <code>NaN</code> を返します。</p>

<pre class="brush: js notranslate">parseFloat('FF2');
</pre>

<h3 id="parseFloat_and_BigInt" name="parseFloat_and_BigInt"><code>parseFloat</code><code>BigInt</code></h3>

<p>以下の例はどちらも <code>900719925474099300</code> を返します。 float として表現できないほど整数が大きいので、精度が失われます。</p>

<pre class="brush: js notranslate">parseFloat(900719925474099267n);
parseFloat('900719925474099267n');
</pre>

<h2 id="Specifications" name="Specifications">仕様書</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-parsefloat-string', 'parseFloat')}}</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>

<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>

<p>{{Compat("javascript.builtins.parseFloat")}}</p>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li>{{jsxref("parseInt", "parseInt()")}}</li>
 <li>{{jsxref("Number.parseFloat()")}}</li>
 <li>{{jsxref("Number.parseInt()")}}</li>
 <li>{{jsxref("Number.toFixed()")}}</li>
 <li>{{jsxref("isNaN", "isNaN()")}}</li>
</ul>