【发布时间】:2019-07-25 03:52:29
【问题描述】:
我有一个关于浮点运算的一般性问题。
最近,我对了解程序中的计算产生了浓厚的兴趣,因此我开始解题。我想让你解释一下让我特别困惑的一个:
计算机 epsilon(不仅作为十进制值,还作为 二进制指数的位数)。机器ε是取决于尾数的位数还是指数的位数?
这是我的微积分:
def exponent():
expon = 0
for number in range(1000):
if 1.0+2.0**(-number)>1.0:
expon = number
return expon
print(exponent())
print(2**(exponent())) # Prints decimal value
输出:
52
2.220446049250313e-16
正确吗?我对粗体文本的解释有疑问。我必须确定它是 8 位还是 11 位?我怎样才能做到这一点?是否正确的假设是,epsilon 取决于尾数的位数,因为它们决定了浮点数的精度?
【问题讨论】:
标签: python-3.x floating-point epsilon