使用toFixed舍入小数

7
我有一个关于JavaScript函数toFixed(2)的小问题。
如果我要将这个小数45.24859四舍五入,我会使用这个函数得到45.25。
但我的问题是,如果我将10(它没有小数部分)四舍五入,函数会返回一个小数10.00。
如何解决这个问题?
我的问题是,如果输入一个没有小数部分的数字,该函数应该返回一个非小数数字。

请注意这与jQuery毫无关系。 - Sterling Archer
2个回答

7

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

演示

.indexOf()

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

以下解决方案不兼容所有浏览器。
或者
function roundNumber(num){
   return (num.toString().contains(".")) ? num.toFixed(2) : num;
}

.includes()


@rplg 已修复问题,请重新检查。 - Tushar Gupta - curioustushar

6
我们可以使用这个检查一个数字是否为十进制数来判断一个数字是否为十进制数。因此,你可以使用下面的这个函数:
function roundNumber(num){
   return num % 1 != 0 ? num.toFixed(2) : num;
}

我认为更好的选择是使用:

Math.round(num * 100) / 100

你没有处理10.1到10.10的情况。 - bjb568
10.1 应该是 10.10 对吧..? - Sarath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接