在循环中添加0.1会导致奇怪的分数

时间:2013-08-26 20:58:20

标签: javascript

在循环中将0.1添加到另一个数字时,我发生了一些奇怪的事情。

function updateLoop() {
  for (var key in resources) {
    if (resources.hasOwnProperty(key)) { // Key is "Population" here.
      // Add income to stock.
      resources[key][1] += resources[key][0];
      document.getElementById(key).innerHTML = resources[key][1];
    }
  }
  setTimeout(updateLoop, 3000);
}

现在由于某种原因而不是添加0.1它有时会增加0.1000000000000001
resources对象内:

Population: Array[2]
0: 0.1
1: 1.2000000000000002

任何人都知道为什么会这样?我能解决吗?

0 个答案:

没有答案