鱼C论坛

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

[已解决]零基础学习python第15讲

[复制链接]
发表于 2018-3-30 15:41:03 | 显示全部楼层 |阅读模式

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

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

x
     %f           格式化定点数,可指定小数点后的精度,默认精确到6位

为什么 这样操作,会输 另外的结果?
>>> "%.25f" % 3.3
'3.2999999999999998223643161'
最佳答案
2018-3-30 16:18:04
浮点数是用机器上浮点数的本机双精度(64 bit)表示的。提供大约17位的精度和范围从-308到308的指数。和C语言里面的double类型相同。Python不支持32bit的单精度浮点数。如果程序需要精确控制区间和数字精度,可以考虑使用numpy扩展库。
Python 3.X对于浮点数默认的是提供17位数字的精度。

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-30 16:18:04 | 显示全部楼层    本楼为最佳答案   
浮点数是用机器上浮点数的本机双精度(64 bit)表示的。提供大约17位的精度和范围从-308到308的指数。和C语言里面的double类型相同。Python不支持32bit的单精度浮点数。如果程序需要精确控制区间和数字精度,可以考虑使用numpy扩展库。
Python 3.X对于浮点数默认的是提供17位数字的精度。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-30 16:48:45 | 显示全部楼层
小数点精确到6位正确输出格式,也是四舍五入的方式
>>> '%.6f'%3.3
'3.300000'

你那个25位精度怎么来的,我也不清楚啊,下面有回答,好像说是17位以上的python3.x不支持。我试了一下,也就到15位呀,小数点后面都是0.但是16位开始就出现你这样的情况了。下面说的是用扩展库可以实现
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-9 23:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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