在 JavaScript 中将数字四舍五入到小数点后两位
Harshit Jindal
2023年10月12日
-
使用
.toFixed()
方法将 JavaScript 中的数字四舍五入到小数点后两位 -
在 JavaScript 中使用
Math.round()
函数将数字四舍五入到小数点后两位 - 在 JavaScript 中使用双舍入将数字四舍五入到小数点后两位
- 在 JavaScript 中使用自定义函数将数字四舍五入到小数点后两位
本教程介绍了如何在 JavaScript 中将数字四舍五入到小数点后两位。
使用 .toFixed()
方法将 JavaScript 中的数字四舍五入到小数点后两位
我们对数字应用 .toFixed()
方法,并将小数点后的位数作为参数。
var numb = 12312214.124124124;
numb = numb.toFixed(2);
在某些情况下,此方法无法获得准确的结果,并且有比该方法更好的方法。如果数字四舍五入为 1.2
,则它将显示为 1.20
。如果给出的数字是 2.005
,它将返回 2.000
,而不是 2.01
。
在 JavaScript 中使用 Math.round()
函数将数字四舍五入到小数点后两位
我们将数字加上一个非常小的数字 Number.EPSILON
,以确保数字的精确舍入。然后,我们在舍入前将数字乘以 100
,以仅提取小数点后两位。最后,我们将数字除以 100,以获得最多 2 个小数位。
var numb = 212421434.533423131231;
var rounded = Math.round((numb + Number.EPSILON) * 100) / 100;
console.log(rounded);
输出:
212421434.53
尽管此方法比 .toFixed()
有所改进,但它仍然不是最佳解决方案,也无法正确舍入 1.005
。
在 JavaScript 中使用双舍入将数字四舍五入到小数点后两位
在此方法中,我们使用 .toPrecision()
方法来消除在单次舍入中的中间计算过程中引入的浮点舍入误差。
function round(num) {
var m = Number((Math.abs(num) * 100).toPrecision(15));
return Math.round(m) / 100 * Math.sign(num);
}
console.log(round(1.005));
输出:
1.01
在 JavaScript 中使用自定义函数将数字四舍五入到小数点后两位
function roundToTwo(num) {
return +(Math.round(num + 'e+2') + 'e-2');
}
console.log(roundToTwo(2.005));
这个自定义函数可以处理所有的极端情况,该函数可以很好地处理小数点后的小数(如 1.005
)。
作者: Harshit Jindal
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn