提问人:Michael 提问时间:11/19/2022 最后编辑:Michael 更新时间:11/20/2022 访问量:158
指数在 Python 中增强精度
Exponential Powers Precision in Python
问:
我想知道为什么在 Python 中是 but is .有没有一种更精确的数字方法来改变数字的幂?5*10**-6 == 0.000005
false
5*10**-3==0.005
true
我预计 5*10**-6 == 0.000005 是真的
答:
0赞
Cmd858
11/20/2022
#1
此问题是浮点数的一个众所周知的问题,称为浮点舍入误差。由于某些值必须表示为以 2 为基数的重复小数,而 2 是浮点数的存储方式,因此必须以一定的精度四舍五入。这就是为什么如果你在 python 控制台中输入,它会返回给你:.不幸的是,这是浮点数的本质,但是如果您确实希望这种情况直观地工作,您可能需要考虑标准库中的模块,其文档可以在此处找到。5*10**-6
4.9999999999999996e-06
decimal
评论