我用float存储0.1和0.2,计算他们的和,结果和实际结果 ( 0.30000000000000004)差别很大啊?
我写了python,将0.1和0.2转成IEEE754 二进制,并相加,最后得到 二进制 00111110100110011001100110011010 (32位)
,但这个IEEE754 二进制数,对应的十进制是
0.300000011920928955078125,
为何编译器算出的结果是 0.30000000000000004 ?
差别还满大,难道我要用64位 IEEE754 二进制表示小数?百度了一下,python里面没有double啊。怎么回事?
--
修改:feng321 FROM 120.242.238.*
FROM 120.242.238.*