JavaScript toFixed() 方法
实例代码
把数字转换为字符串,结果的小数点后有指定位数的数字:
var num = 5.56789;
var n=num.toFixed(2);
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"(若用括号提高优先级,则返回字符串)
浏览器支持
所有主要浏览器都支持 toFixed() 方法
语法
number.toFixed(x)
参数值
参数 | 描述 |
---|---|
x | 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。 |
返回值
类型 | 描述 |
---|---|
String | 数字字符串。 |
技术细节
JavaScript 版本: | 1.5 |
---|
更多实例
实例代码
将一个数字,不留任何小数:
var num = 5.56789;
var n=num.toFixed();
var n=num.toFixed();
n 输出结果:
实例代码
转换一个比指定数小的小数点后的位数的数字:
var num = 5.56789;
var n=num.toFixed(10);
var n=num.toFixed(10);
n 输出结果:
toFixed() 方法在处理浮点数时,实际上使用的是舍入到最近的偶数(银行家舍入)策略,而不是标准的四舍五入,如下实例:
实例代码
let num1 = 0.615;
console.log(num1.toFixed(2)); // 输出 "0.61" 而非 "0.62"
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"
const factor = 10 ** decimals;
return Math.round(number * factor) / factor;
}
let num2 = 0.615;
console.log(roundNumber(num2, 2)); // 输出 "0.62"