Python3:将big int转换为float-错误的结果-怎么做正确?

时间:2018-12-05 15:20:50

标签: python-3.x type-conversion int

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

为什么int(float(number))还给别人一个数字,而不是原来的数字?

数字,例如

11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581

int(float(number)之后,我得到了

11112156454654632053401792328854929027579441319469717890945725999319869381390969666824878190611577646608244392592697365262211066608985571328

谢谢

此刻确实卡住了。

约翰内斯

1 个答案:

答案 0 :(得分:0)

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

您应该看一下有关十进制模块的情况。

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