大家有没有试试计算0.3/3,结果居然是0.09999999999,这是什么原因
本来想做个计算器,结果计算0.3/3,结果居然是0.09999999999,不知何故 其他的计算就没问题
console.log(0.3/3)
大家打印到控制台试试
10 回复
计算机组成以及浮点数,了解一下。
计算机是无法准确表达浮点数的,计算机归根结底只是由0和1组成的
就拿 0.3 举个例子吧。
0.01 = 1/4 = 0.25 ,太小
0.011 =1/4 + 1/8 = 0.375 , 太大
0.0101 = 1/4 + 1/16 = 0.3125 , 逼近0.3了但还是有点大
0.01001 = 1/4 + 1/32 = 0.28125 , 又有点小了
0.010011 = 1/4+ 1/32 + 1/64 = 0.296875 很近了,还是有点小
0.0100111 = 1/4 + 1/32 + 1/64 + 1/128 = 0.3046875 大了点
…
这样下去会越来月接近0.3,能计算几位取决于你的计算机位数
所以你看见的0.3,在计算机里面并不是0.3,只是一个近似值。