指数在 Python 中增强精度

Exponential Powers Precision in Python

提问人:Michael 提问时间:11/19/2022 最后编辑:Michael 更新时间:11/20/2022 访问量:158

问:

我想知道为什么在 Python 中是 but is .有没有一种更精确的数字方法来改变数字的幂?5*10**-6 == 0.000005false5*10**-3==0.005true

我预计 5*10**-6 == 0.000005 是真的

python-3.x 精度

评论


答:

0赞 Cmd858 11/20/2022 #1

此问题是浮点数的一个众所周知的问题,称为浮点舍入误差。由于某些值必须表示为以 2 为基数的重复小数,而 2 是浮点数的存储方式,因此必须以一定的精度四舍五入。这就是为什么如果你在 python 控制台中输入,它会返回给你:.不幸的是,这是浮点数的本质,但是如果您确实希望这种情况直观地工作,您可能需要考虑标准库中的模块,其文档可以在此处找到。5*10**-64.9999999999999996e-06decimal