我有一个JavaScript中的函数来循环数字。JavaScript的圆形函数不起作用
function roundNumber(num){
var result = Math.round(num*100)/100;
return result;
}
alert(roundNumber(5334.5));
//I still get 5334.5 when normally I should get 5335
我错过了什么?
我有一个JavaScript中的函数来循环数字。JavaScript的圆形函数不起作用
function roundNumber(num){
var result = Math.round(num*100)/100;
return result;
}
alert(roundNumber(5334.5));
//I still get 5334.5 when normally I should get 5335
我错过了什么?
尝试使用:
function roundNumber(num){
var result = Math.round(num);
return result;
}
alert(roundNumber(5334.5));
为什么你乘以'100'然后除以'100'? –
@DaniloValente:OP的原始问题..我只是复制相同的..需要咖啡.. arg .. :) –
的答案是正确的。你实际上四舍五入到小数点后两位。应该是:
Math.round(num);
只需修改您的代码与这条线::
var result = Math.round(num);
我认为这是要覆盖默认行为这样的一个时期,Math.round是一个伟大的方法但有时轮子不够圆。以下是你可以做的:
Math.round = function (x) {
if (parseInt((x + 0.5).toString().split(".")[0], 10) > parseInt(x.toString().split(".")[0], 10)) {
return parseInt((x + 1).toString().split(".")[0], 10);
} else {
return parseInt(x.toString().split(".")[0], 10);
}
};
你将结果除以100.你为什么期待它是一个整数? – Bugs
你的函数是截断到小数点后两位的一种方法,但你期望它能够四舍五入到最接近的整数。这里有一个逻辑错误的位。 – Paddy
您似乎正在使用来自http://stackoverflow.com/questions/11832914/round-up-to-2-decimal-places-in-javascript的代码,它舍入到小数点后两位 – Ruskin