我需要对python3 (版本3.6.7)中的一个很大的int进行除法运算。由于除法后总是得到错误的结果(用小数字检查),所以我发现这是int和float之间的转换。
为什么int(float(number))
还给别人一个数字,而不是原来的数字?
数字,例如
11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581
在int(float(number)
之后,我得到了
11112156454654632053401792328854929027579441319469717890945725999319869381390969666824878190611577646608244392592697365262211066608985571328
谢谢
此刻确实卡住了。
约翰内斯
答案 0 :(得分:0)
这是二进制浮点运算的技巧。 Python doc just here.
您应该看一下有关十进制模块的情况。
from decimal import *
int(Decimal('11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581'))