在运行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价值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)