なんでかというと、現代のコンピューターの性質で、数値を2進数、つまり2の階乗の和で表現しようとするためです。 例えば0.5は簡単ですね。2-1です。また0.25は2-2ですから、0.75は2-1+2-2という事になります。 ちなみにJavaScriptで階乗を扱う場合はMath.pow()です。 console.log(Math.pow(2, -1)); // => 0.5 console.log(Math.pow(2, -2)); // => 0.25 console.log(Math.pow(2, -1) + Math.pow(2, -2)); // => 0.75
![0.1+0.2は0.3になりません(JavaScript おれおれ Advent Calendar 2011 – 13日目) | Ginpen.com](https://cdn-ak-scissors.b.st-hatena.com/image/square/de4af7f62b39439905833504e59ba1e153be6d8b/height=288;version=1;width=512/https%3A%2F%2Fginpen.com%2Fwp-content%2Fthemes%2Fginpen-theme%2Fimg%2Ficon-512.png)