我在谷歌搜索1小时半后尝试了很多脚本,并且所有脚本都给了我错误的舍入数字或错误的值。这是我试过的两个脚本。
FIRST TRY:
Number.prototype.round = function(p) {
p = p || 10;
return parseFloat( this.toFixed(p) );
};
SECOND TRY:
function roundNumber(number, decimals) {
var newnumber = new Number(number+'').toFixed(parseInt(decimals));
return parseFloat(newnumber);
}
我从两者获得的一些示例输出:
0.22 -> 0.21480000000000005 (bad) should be 21
0.43 -> 0.4284 (good) 43 is right
我做错了什么?任何帮助都会受到赞赏,因为这让我捅了太久。
答案 0 :(得分:2)
为什么不使用这样的东西:
Math.round(yourNumber * 100) / 100;
这会将它四舍五入到小数点后两位,同样的问题在这里或多或少得到了解答 - Round to at most 2 decimal places (only if necessary)
以下是一个小例子
function round(num){
var result = Math.round(num * 100) / 100;
return console.log(result);
}
round(0.4284);