【问题标题】:Python3: convert big int to float - wrong result - how do it right?Python3:将大整数转换为浮点数-结果错误-如何正确?
【发布时间】:2019-05-07 05:00:39
【问题描述】:

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

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

数字例如

11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581

int(float(number) 之后我得到

11112156454654632053401792328854929027579441319469717890945725999319869381390969666824878190611577646608244392592697365262211066608985571328

谢谢,

现在真的卡住了。

约翰内斯

【问题讨论】:

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多