javascript - 在 Javascript 中添加/减去 float 时出现奇怪的结果

标签 javascript addition subtraction

我是第一次尝试使用 JavaScript。我的目标是构建一个小的“配置器”。在我的页面上,有 2 个按钮触发了以下函数 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;
}

priceEngraving 定义为 1,#price 的“默认”innerHtml 为 5.30。 当按下按钮 1 时,出现以下结果:
6.3

这没问题,也是预期的结果(在末尾附加一个 0 并不难)。

当按下按钮 #2 时,会出现以下结果: 5.3000000000000004

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

此外,我知道使用 JavaScript 时的安全问题,但这只是光学问题。

最佳答案

问题是有些数字不能精确地表示为 float 。 如果你总是想要 2 位小数,那么你可以在你的数字上使用方法 toFixed(2) ( documentation )。

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

关于javascript - 在 Javascript 中添加/减去 float 时出现奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12865437/

相关文章:

javascript - Angular 4 RxJs Observable Subjects 数组未使用新对象更新

javascript - 尝试对齐 d3.js 中的文本

php - 从数据库添加两次

plugins - cordova 添加插件 - 无法访问

javascript - 如何减去单选按钮的值

Python pandas 对带有条件的列进行减法计算

java - 如何在java中使用removeall()减去ArrayList?

javascript - 使用转义键取消内联 tinyMCE 编辑

javascript - 如何向具有给定标签和类的每个 dom 元素声明 js 事件和函数,即使这些元素目前不存在?

c++ - 浮点加法和乘法是关联的吗?