blob: 95787ab74f261acde0cfaebb2a788ca31975fbe0 (
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
|
---
title: Number.prototype.toFixed()
slug: Web/JavaScript/Reference/Global_Objects/Number/toFixed
translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed
---
<div>{{JSRef}}</div>
<p><code><strong>toFixed()</strong></code> 方法使用定点表示法来格式化一个数值。</p>
<div>{{EmbedInteractiveExample("pages/js/number-tofixed.html")}}</div>
<h2 id="Syntax">语法</h2>
<pre class="syntaxbox"><code><em>numObj</em>.toFixed(<em>digits</em>)</code></pre>
<h3 id="Parameter">参数</h3>
<dl>
<dt>digits</dt>
<dd>小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0。</dd>
</dl>
<h3 id="Returns">返回值</h3>
<p>使用定点表示法表示给定数字的字符串。</p>
<h3 id="Throws">抛出异常</h3>
<dl>
<dt>{{jsxref("RangeError")}}</dt>
<dd>如果 <em>digits</em> 参数太小或太大。0 到 20(包括)之间的值不会引起 {{jsxref("RangeError")}}。实现环境(implementations)也可以支持更大或更小的值。</dd>
</dl>
<dl>
<dt>{{jsxref("TypeError")}}</dt>
<dd>如果该方法在一个非{{jsxref( "Number")}}类型的对象上调用。</dd>
</dl>
<h2 id="描述">描述</h2>
<p>一个数值的字符串表现形式,不使用指数记数法,而是在小数点后有 digits(注:digits具体值取决于传入参数)位数字。该数值在必要时进行四舍五入,另外在必要时会用 0 来填充小数部分,以便小数部分有指定的位数。 如果数值大于 1e+21,该方法会简单调用 {{jsxref("Number.prototype.toString()")}}并返回一个指数记数法格式的字符串。</p>
<div class="warning">
<p><strong>Warning:</strong> 浮点数不能精确地用二进制表示所有小数。这可能会导致意外的结果,例如 <code>0.1 + 0.2 === 0.3</code> 返回 <code>false</code> .</p>
</div>
<h2 id="Example">示例</h2>
<h3 id="使用_toFixed">使用 <code>toFixed</code></h3>
<pre class="brush: js">var numObj = 12345.6789;
numObj.toFixed(); // 返回 "12346":进行四舍六入五看情况,不包括小数部分
numObj.toFixed(1); // 返回 "12345.7":进行四舍六入五看情况
numObj.toFixed(6); // 返回 "12345.678900":用0填充
(1.23e+20).toFixed(2); // 返回 "123000000000000000000.00"
(1.23e-10).toFixed(2); // 返回 "0.00"
2.34.toFixed(1); // 返回 "2.3"
2.35.toFixed(1) // 返回 '2.4'. Note it rounds up
2.55.toFixed(1) // 返回 '2.5'. Note it rounds down - see warning above
-2.34.toFixed(1); // 返回 -2.3 (由于操作符优先级,负数不会返回字符串)
(-2.34).toFixed(1); // 返回 "-2.3" (若用括号提高优先级,则返回字符串)
</pre>
<h2 id="规范">规范</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('ES3')}}</td>
<td>{{Spec2('ES3')}}</td>
<td>Initial definition. Implemented in JavaScript 1.5.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.7.4.5', 'Number.prototype.toFixed')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}}</td>
<td>{{Spec2('ES6')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<p>{{Compat("javascript.builtins.Number.toFixed")}}</p>
<h2 id="相关链接">相关链接</h2>
<ul>
<li>{{jsxref("Number.prototype.toExponential()")}}</li>
<li>{{jsxref("Number.prototype.toPrecision()")}}</li>
<li>{{jsxref("Number.prototype.toString()")}}</li>
</ul>
|