JavaScript toFixed() 方法

Number 对象参考手册 JavaScript Number 对象

实例代码

把数字转换为字符串,结果的小数点后有指定位数的数字:

var num = 5.56789;
var n=num.toFixed(2);

n 输出结果:


定义和用法

toFixed() 方法将一个浮点数转换为指定小数位数的字符串表示,如果小数位数高于数字,则使用 0 来填充。

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

注意:toFixed() 方法在进行四舍五入时可能会产生一些不准确的结果,这是因为 toFixed() 方法在处理浮点数时,实际上使用的是舍入到最近的偶数(银行家舍入)策略,而不是标准的四舍五入。这种舍入策略是为了在大量运算时减小累积误差。

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'  向上舍入

2.55.toFixed(1)           // 返回 '2.5' 向下舍入,参考以上注意事项

-2.34.toFixed(1);         // 返回 -2.3(由于操作符优先级,负数不会返回字符串)

(-2.34).toFixed(1);       // 返回 "-2.3"(若用括号提高优先级,则返回字符串)

浏览器支持

Internet ExplorerFirefoxOperaGoogle ChromeSafari

所有主要浏览器都支持 toFixed() 方法


语法

number.toFixed(x)

参数值

参数 描述
x 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

返回值

类型 描述
String 数字字符串。

技术细节

JavaScript 版本: 1.5


更多实例

实例代码

将一个数字,不留任何小数:

var num = 5.56789;
var n=num.toFixed();

n 输出结果:


实例代码

转换一个比指定数小的小数点后的位数的数字:

var num = 5.56789;
var n=num.toFixed(10);

n 输出结果:

toFixed() 方法在处理浮点数时,实际上使用的是舍入到最近的偶数(银行家舍入)策略,而不是标准的四舍五入,如下实例:

实例代码

let num1 = 0.615;
console.log(num1.toFixed(2)); // 输出 "0.61" 而非 "0.62"

如果需要更精确的四舍五入,可以使用其他方法,例如将数字乘以某个倍数、调用 Math.round() 函数并手动处理小数位数等,如下实例:

实例代码

function roundNumber(number, decimals) {
  const factor = 10 ** decimals;
  return Math.round(number * factor) / factor;
}

let num2 = 0.615;
console.log(roundNumber(num2, 2)); // 输出 "0.62"


Number 对象参考手册 JavaScript Number 对象