7

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

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

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

我该如何解决这个问题?

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

4

2 回答 2

7

解决这个问题的另一种方法

演示

。指数()

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


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

或者

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

.contains()

于 2013-10-29T06:37:59.663 回答
6

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

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

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

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

Math.round(num * 100) / 100
于 2013-10-29T06:35:29.680 回答