【发布时间】:2011-06-22 08:33:53
【问题描述】:
我在使用 PHP 和 javascript 整数的方式时遇到了一些问题。我正在使用 PHP 的 round 函数和这个 javascript 函数:
function roundNumber(number, decimals) {
var newnumber = new Number(number+'').toFixed(parseInt(decimals));
var value = parseFloat(newnumber);
return value;
}
我试图四舍五入的数字是 43.65 * 2.5 + 40%,当使用计算器完成时 = 152.775 或在 PHP 中四舍五入 = 152.78。
在 javascript 中,当我执行 console.log 时,数字为 152.774999999998,当使用上述函数四舍五入时,我得到 152.77
非常感谢任何解决此问题的帮助
【问题讨论】:
-
这就是我们不使用浮点数作为货币的原因。
-
确保在使用
parseInt时指定一个基数;通常你想以 10 为基数工作,所以:parseInt(yourNumber,10). -
有人可以向我解释为什么在 PHP 中 round(22.044960000000003,2) 变成 22.04 和 round(152.77499999999998,2) 变成 152.78 为什么当我只想要 2 dp 时第二个四舍五入到 152.78跨度>
标签: php javascript