【发布时间】:2013-12-20 10:04:46
【问题描述】:
我使用了以下两种方法:
Number.prototype.myRound = function (decimalPlaces) {
var multiplier = Math.pow(10, decimalPlaces);
return (Math.round(this * multiplier) / multiplier);
};
alert((239.525).myRound(2));
数学上的警报应该是239.53,但它给出239.52作为输出。
所以我尝试使用.toFixed() 函数,我得到了正确的答案。
但是当我尝试得到239.575 的答案时,它又给出了错误的输出。
alert((239.575).toFixed(2));
这里的输出应该是239.58,而不是给出239.57。
此错误会在最终输出中产生一点差异。那么谁能帮我解决这个问题?
【问题讨论】:
-
有趣但
239.375.toFixed(2)在 Chrome 31 (Mac) 中返回"239.38"... :) -
@VisioN 不在这里。您使用的是哪个浏览器?我在 Ubuntu 上使用最新的 FF。
-
@CedricReichenbach MacOS 上的 Chrome 31
-
更简单的解决方案:Truncate to decimals function
标签: javascript jquery