1

在循环中将 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

有谁知道为什么会这样?我可以修复它吗?

4

0 回答 0