- 主题:python里面,存储小数是不是用double类型啊?
我用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.*
RTFM
【 在 feng321 的大作中提到: 】
: 我用float存储0.1和0.2,计算他们的和,结果和实际结果 ( 0.30000000000000004)差别很大啊?
: 我写了python,将0.1和0.2转成IEEE754 二进制,并相加,最后得到 二进制 00111110100110011001100110011010 (32位)
: ,但这个IEEE754 二进制数,对应的十进制是
: ...................
--
FROM 61.149.73.24
有链接吗?最好是中文的。百度无果
【 在 annals 的大作中提到: 】
: RTFM
:
--
FROM 120.242.238.*
这个问题你好像很久以前讨论过,回复里不是有解释和解决方案吗?
怎么又提出来了?
逗大家玩吗?
https://www.mysmth.net/nForum/article/Python/162611?s=162611
【 在 feng321 的大作中提到: 】
: 我用float存储0.1和0.2,计算他们的和,结果和实际结果 ( 0.30000000000000004)差别很大啊?
: 我写了python,将0.1和0.2转成IEEE754 二进制,并相加,最后得到 二进制 00111110100110011001100110011010 (32位)
: ,但这个IEEE754 二进制数,对应的十进制是
: ...................
--
修改:pixYY FROM 111.36.200.*
FROM 111.36.200.*