Joh*_*nes 5 int type-conversion python-3.x
我需要对 python3 (版本 3.6.7)中的一个非常大的 int 进行一些除法。由于除法后总是得到错误的结果(用小数检查),我发现这是 int 和 float 之间的转换。
为什么要int(float(number))返回与最初给出的不同的数字?
数量例如
11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581
Run Code Online (Sandbox Code Playgroud)
int(float(number)我得到之后
11112156454654632053401792328854929027579441319469717890945725999319869381390969666824878190611577646608244392592697365262211066608985571328
Run Code Online (Sandbox Code Playgroud)
谢谢,
此刻确实陷入了困境。
约翰内斯
这是二进制浮点运算的典型。Python 文档就在这里。
您应该看看您的案例中的Decimal模块。
from decimal import *
int(Decimal('11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |