使用 toFixed 对十进制数字进行舍入

Rounding decimal numbers using toFixed

本文关键字:舍入 十进制数字 toFixed 使用      更新时间:2023-09-26

我对JavaScript函数toFixed(2)有小问题。

如果我45.24859这个十进制数四舍五入,我使用此函数会得到45.25

但我的问题是,如果我四舍五入10(它没有小数部分),该函数将返回一个十进制数10.00

如何解决此问题?

我的问题是,如果输入一个没有小数部分的数字,该函数应该返回一个非十进制数字。

解决此问题的另一种方法

演示

.indexOf()

function roundNumber(num){
   return (num.toString().indexOf(".") !== -1) ? num.toFixed(2) : num;
}


以下解决方案与所有浏览器不兼容。

function roundNumber(num){
   return (num.toString().contains(".")) ? num.toFixed(2) : num;
}

.contains()

我们可以用这个检查数字是否是十进制的 检查一个数字是否有小数...

所以结合你可以使用这个功能

function roundNumber(num){
   return num % 1 != 0 ? num.toFixed(2) : num;
}

或者我认为更好的选择是使用

Math.round(num * 100) / 100