鱼C论坛

 找回密码
 立即注册
查看: 3077|回复: 2

[已解决]请问python的浮点数最多能到小数点后多少位

[复制链接]
发表于 2022-11-8 14:30:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问python的浮点数最多能到小数点后多少位
最佳答案
2022-11-8 14:50:35
本帖最后由 jackz007 于 2022-11-8 15:17 编辑

        浮点数的点是可以浮动的(科学计数法),所以,一般不讨论最多能到小数点后多少位,而是有多少个有效数位。有效数位的大小只与浮点数所采用的 IEEE754 编码算法相关,与 Python 无关,分单精度和双精度浮点有所不同,从理论上那个说,单精度只能保证 7 位有效数字精度,而双精度也只能保证 15 位有效数字精度。什么意思?如果把一个 100 位的整型数转化为浮点数,那么,只有前面的15个数字一定是正确的,至于后面,那就只能作为参考了。
>>> x = 1234567890 ** 20
>>> x
67654944698652654984024168126592336587389088632301444555055192431380155244466533667477942075540289377153883353126488114832802578880956470654664413456344497903320100000000000000000000
>>> s = "%.30f" % float(x)
>>> print(s)
67654944698652654027241723628626385494795909504071476962713259650032748793953988299057243106548303395854908175767358515918013760367926160945349413202329298147722338388143158220292096.000000000000000000000000000000
>>> 
      可见,两种表达只有开头的 67654944698652654 是完全一样的,可见,浮点数的精度非常有限。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-8 14:45:42 | 显示全部楼层
16 ~ 17 位
>>> 1.1111111111111111111
1.1111111111111112
>>> 1.111111111111111111111111111111111111
1.1111111111111112
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-8 14:50:35 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-11-8 15:17 编辑

        浮点数的点是可以浮动的(科学计数法),所以,一般不讨论最多能到小数点后多少位,而是有多少个有效数位。有效数位的大小只与浮点数所采用的 IEEE754 编码算法相关,与 Python 无关,分单精度和双精度浮点有所不同,从理论上那个说,单精度只能保证 7 位有效数字精度,而双精度也只能保证 15 位有效数字精度。什么意思?如果把一个 100 位的整型数转化为浮点数,那么,只有前面的15个数字一定是正确的,至于后面,那就只能作为参考了。
>>> x = 1234567890 ** 20
>>> x
67654944698652654984024168126592336587389088632301444555055192431380155244466533667477942075540289377153883353126488114832802578880956470654664413456344497903320100000000000000000000
>>> s = "%.30f" % float(x)
>>> print(s)
67654944698652654027241723628626385494795909504071476962713259650032748793953988299057243106548303395854908175767358515918013760367926160945349413202329298147722338388143158220292096.000000000000000000000000000000
>>> 
      可见,两种表达只有开头的 67654944698652654 是完全一样的,可见,浮点数的精度非常有限。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 19:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表