栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

浮点数字符串格式中的Python精度

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浮点数字符串格式中的Python精度

但是我真的应该手动强制要多少个十进制数字吗? 是。

即使指定了10个十进制数字,您仍然不能全部打印。无论如何,浮点数没有这种精度,它们大多是十进制数的 近似值
(它们实际上是加起来的二进制分数)。尝试这个:

>>> format(38.2551994324, '.32f')'38.25519943239999776096738060005009'

还有 很多 甚至没有指定的小数。

当格式化浮点数(无论是与

'%f' % number
'{:f}'.format(number)
format(number, 'f')
),一个
默认的 显示小数位数。这与使用
str()
(或
'%s' %number
'{}'.format(number)
format(number)
,实际上是
str()
在幕后使用)时没有什么不同,只有默认情况下包含的小数位数有所不同;Python版本之前3.2使用12位
的整数 使用时
str()

如果您希望有理数计算可以使用 特定的精确
数字位数,则不要使用浮点数。使用

decimal.Decimal
类型代替:

  • 十进制“基于浮点模型,该浮点模型是为人而设计的,并且必然具有最重要的指导原则–计算机必须提供一种与人们在学校学习的算法相同的算法。”
    –摘自十进制算术规范。

  • 小数可以精确表示。相比之下,类似

    1.1
    和的数字
    2.2
    在二进制浮点数中没有确切的表示形式。最终用户通常不会期望
    1.1 +2.2
    3.3000000000000003
    二进制浮点那样显示。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506542.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号