【问题标题】:Why does an number change when using jQuery Division and converting to a Percentage? [duplicate]为什么在使用 jQuery Division 并转换为百分比时数字会发生变化? [复制]
【发布时间】:2012-01-04 01:18:37
【问题描述】:

可能重复:
Why can't decimal numbers be represented exactly in binary?

我正在尝试使用 jQuery 将数字转换为百分比。我误解了 javascript 如何执行数学函数,我想知道是否有人可以解释为什么会发生这种情况和/或为我提供更好的方法来处理它。我正在使用乘以 100 的小学原理来获得百分比。

这是一个小提琴,但我也会在这里弹出我的代码。 http://jsfiddle.net/dandenney/8wsFd/

$(function() {    
    var division = 100/600;
    var percentage = division * 100;

    $("#division").html(division);
    $("#percentage").html(percentage);
});

如果我运行这个,除法 = 0.16666666666666666,但百分比 = 16.666666666666664。

谁能告诉我为什么它会四舍五入以及是否有更好的方法将该字符串转换为百分比?

【问题讨论】:

  • 谢谢你指点我那个。很多时候,最难的部分是知道自己在寻找什么。

标签: jquery math


【解决方案1】:

javascript 使用的 number 类型是 IEEE 754-2008 浮点类型,并且具有 known acurracy issues...

【讨论】:

    【解决方案2】:

    Finite precision。您根本无法使用 IEEE 浮点准确地表示重复数字。如果您关心这种精度级别,您可以使用或创建自己的格式,将数字存储为分数。

    【讨论】:

    • 我将这个标记为答案,因为您引导我使用 parseFloat 和 toFixed。只要我愿意,我就可以用完这个数字。谢谢!
    【解决方案3】:

    这是因为floating point math

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      相关资源
      最近更新 更多