2016-05-30 124 views
-5

一个Number变量我有这样的代码:四舍五入在javascript

function sellByte() { 
if (player.bytes >= 1) { 
    player.bytes = player.bytes - 1; 
    player.money = player.money + 0.10; 
    document.getElementById("bytes").innerHTML = "Bytes: " + player.bytes; 
    document.getElementById("money").innerHTML = "$" + player.money; 
    } 
} 

每当我卖一个字节我的钱价值最终看起来像$ 10.00000003或沿着这些线路的东西,我将如何去四舍五入的货币价值每次运行此功能时都会启动?

+0

parseFloat和toFixed是要*修复*从浮点运算,你得到的舍入误差, – Jacobian

+0

难道还是你只是你最好的朋友想*显示*他们为圆形数字? – Jeroen

+3

但实际上你的问题已经在这里的答案在stackoverflow,你应该已经绑定找到他们 – Jacobian

回答

1

在JS中使用浮点数很是tricky。我的建议是只使用较小的单位(美分而不是美元)进行操作,然后您将只处理整数并且不会有类似的问题。

-1

使用Math.round(player.money* 100)/100进行2次十进制舍入。

+0

为什么-1?现在有人添加了类似答案的重复。 –