【发布时间】:2015-05-11 16:29:30
【问题描述】:
在谷歌搜索 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
我做错了什么?任何帮助将不胜感激,因为这让我戳了太久。
【问题讨论】:
-
第二个sn-p代码非常糟糕,尤其是在
new Number(number+'')
标签: javascript math rounding