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

为什么在python中,非常大的float值之间的比较会失败?

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

为什么在python中,非常大的float值之间的比较会失败?

在运行Python的典型计算机上,Python浮点数有53位精度。如果尝试进一步,Python将消除最小的部分,以便可以正确表示数字。

因此,值1被吸收或取消,以便能够代表您要计算的高值。

通过减去(或加)乘以浮点epsilon的值来获得极限。

在我的机器上:

maxfloat == 1.7976931348623157e+308epsilon == 2.220446049250313e-16

样本测试代码

import mathimport sysm = sys.float_info.max  # type 'float'eps = sys.float_info.epsilonprint(m == m-(m*(eps/10)))   # Trueprint(m == m-(m*eps))        # False

m*eps
是您必须减去的最小值,以使比较失败。它总是相对于
m
价值。



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

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

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