gpt4 book ai didi

python-3.x - Python3 : convert big int to float - wrong result - how do it right?

转载 作者:行者123 更新时间:2023-12-01 02:30:04 25 4
gpt4 key购买 nike

我需要在 python3(版本 3.6.7)中对一个非常大的 int 进行一些划分。由于除法后总是得到错误的结果(用小数字检查),我发现这是int和float之间的转换。

为什么 int(float(number)) 会返回另一个数字而不是最初给出的数字?

数字例如

11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581

int(float(number) 之后我得到
11112156454654632053401792328854929027579441319469717890945725999319869381390969666824878190611577646608244392592697365262211066608985571328

谢谢,

此刻真的是卡住了。

约翰内斯

最佳答案

这是二进制浮点运算的典型。 Python doc just here.

在你的情况下,你应该看看 Decimal 模块。

from decimal import *
int(Decimal('11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581'))

关于python-3.x - Python3 : convert big int to float - wrong result - how do it right?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53635457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com