JavaScript toFixed() 语法
toFixed() 是 JavaScript Number 对象的一个方法,它会以字符串的形式来返回某个数字的 “四舍五入值”。
语法:
num.toFixed(n)说明:
toFixed() 方法接收单个参数。
n(可选):用于指定小数点后有几位数字。如果 n 省略,则表示不带任何小数。
JavaScript toFixed() 摘要
| 属于 | JavaScript Number 对象 |
|---|---|
| 使用频率 | 高 |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript toFixed() 示例
接下来,我们通过几个简单的例子来讲解 JavaScript toFixed() 是如何使用的。
示例 1:toFixed() 不带参数
const num = 3.1415;
const result = num.toFixed();
console.log(result);
console.log(typeof(result));运行结果如下。
3
string分析:
需要注意的是,toFixed() 方法返回的不再是数字,而是一个字符串。
示例 2:toFixed() 带参数
const num = 3.1415;
const result1 = num.toFixed(1);
console.log(result1);
const result2 = num.toFixed(3);
console.log(result2);运行结果如下。
3.1
3.142分析:
当 toFixed() 方法带参数时,表示对指定位数的下一位进行四舍五入。
示例 3:常见的精度陷阱
console.log(1.335.toFixed(2)); // "1.33" (期望是 1.34,精度丢失)
console.log(1.005.toFixed(2)); // "1.00" (期望是 1.01)运行结果如下。
1.33
1.00分析:
toFixed() 的四舍五入并不总是准确的。在针对金钱计算时,很多时候我们会使用下面这种 “黑科技” 来修正精度问题:
Math.round((num + Number.EPSILON) * 100) / 100toFixed() 与 toPrecision() 的区别
toFixed() 与 toPrecision() 这两个方法很相似,它们之间的区别在于:toFixed(n) 表示保留 n 位小数, toPrecision(n) 表示保留 n 位有效数字。
示例 4:toFixed() vs toPrecision()
const num = 314.15926;
const result1 = num.toFixed(3);
console.log(result1);
const result2 = num.toPrecision(3);
console.log(result2);运行结果如下。
314.159
314