JavaScript Number toFixed() 方法

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) / 100

toFixed() 与 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

上一篇: Number.parseFloat()

下一篇: toExponential()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号