IEEE754の小数計算の誤差
IEEE 754
#WIP
以下は曖昧mrsekut.icon
ほとんどの10進数の小数は、2進数に正しく変換できない
丸め誤差のため
コンピュータでは演算する時に、
10進数を2進数に変換
2進数で演算
2進数を10進数に変換
これを小数でやると、
10進数の0.1 + 0.2を2進数に変換すると
0.1は、 0.0001100110011...
0.2は、0.001100110011...
と、両方とも循環小数になっている
JSでは、17桁辺りで丸める(?) ref
0.1に対する丸めと、0.2に対する丸めが生じ、
それらの和(2進数, 既にずれている)を、10進数に変換すると
0.30000000000000004になる
https://en.wikipedia.org/wiki/IEEE_754-1985
http://www.validlab.com/goldberg/paper.pdf