JavaScript函数toFixed(2)
存在小问题。
如果我将此十进制数45.24859
四舍五入,我会使用此函数获得45.25
。
但我的问题是,如果我绕10
(它没有小数部分),该函数将返回一个十进制数10.00
。
如何解决此问题?
我的问题是,如果输入一个没有小数部分的数字,该函数应该返回一个非十进制数字。
答案 0 :(得分: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() 击>
答案 1 :(得分:6)
我们可以使用此Check if a number has a decimal...
检查数字是否为小数结合你可以使用这个功能
function roundNumber(num){
return num % 1 != 0 ? num.toFixed(2) : num;
}
或者我认为更好的选择是使用
Math.round(num * 100) / 100