奇怪的总和问题

时间:2010-12-14 12:26:48

标签: javascript

  

可能重复:
  Elegant workaround for JavaScript floating point number problem

var sum = 0;
$('[id$=percentOfTotalEditor]').each(
    function () {
        var igEditor = $find(this.id);
        var value = igEditor.get_value();
        sum += value;
    }
);

然后你会看到魔力:

sum == 1.1,value == 0.1。但在sum + = value之后,sum == 1.2000000000000001

WTF!?

2 个答案:

答案 0 :(得分:0)

javascript中的数字存储为浮点数 - 会有一定程度的不精确性 - 请参阅链接文章,或者搜索此网站以获取浮点运算以获得多种解释。

答案 1 :(得分:0)

是的,这个问题与Paddy建议的一样重复。不过,这是另一个Javascript库,它允许您使用精确的十进制数字(最多一点):http://blog.brewsession.com/2008/06/28/problematic-decimal-arithmetic-in-javascript/