在Javascript中添加/减去浮动时出现奇怪的结果

在Javascript中添加/减去浮动时出现奇怪的结果,javascript,addition,subtraction,Javascript,Addition,Subtraction,我第一次尝试使用JavaScript。我的目标是构建一个小型“配置器”。在我的页面上,有两个按钮触发以下功能onclick: function default() { curPrice = parseFloat(document.getElementById('price').innerHTML); newPrice = curPrice-priceEngraving; document.getElementById('price').innerHTML=newPrice; } 另一个看

我第一次尝试使用JavaScript。我的目标是构建一个小型“配置器”。在我的页面上,有两个按钮触发以下功能
onclick

function default()
{
 curPrice = parseFloat(document.getElementById('price').innerHTML);
 newPrice = curPrice-priceEngraving;
 document.getElementById('price').innerHTML=newPrice;
}
另一个看起来像这样:

function engrave()
{
var str = document.getElementById('price').innerHTML;
newPrice = curPrice+priceEngraving;
document.getElementById('price').innerHTML=newPrice;
}
price雕刻
定义为1,#price的“默认”
innerHtml
为5.30。 按下按钮1时,出现以下结果:
6.3

这是正常的,并且是预期的结果(在末尾附加0并不太难)

启动按钮2时,会出现以下结果: 530000000000004

我不知道我的代码哪里出了问题。我还尝试了
++
--
(我不喜欢这样,因为你知道,价格可能会发生变化)


另外,我知道使用JavaScript时的安全问题,但这只是一个问题

您遇到了浮点问题。有关详细信息,请参见,此处已详细介绍了这些问题。基本上,没有办法足够精确地映射您所拥有的数据。

问题是有些数字不能精确地表示为浮点数。 如果您总是需要2位小数,则可以对数字使用
toFixed(2)
()方法

document.getElementById('price').innerHTML=newPrice.toFixed(2);

重复问题。多次重复。谢谢你的回答,它更准确,但另一个答案帮助我找到了一个可接受的解决方案!