【发布时间】:2019-05-07 05:00:39
【问题描述】:
我需要对 python3 中的一个非常大的 int 进行一些除法(版本 3.6.7)。由于除法后总是得到错误的结果(用小数字检查),我发现这是int和float之间的转换。
为什么int(float(number)) 会返回另一个数字而不是最初给出的数字?
数字例如
11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581
int(float(number) 之后我得到
11112156454654632053401792328854929027579441319469717890945725999319869381390969666824878190611577646608244392592697365262211066608985571328
谢谢,
现在真的卡住了。
约翰内斯
【问题讨论】:
-
Python 中的浮点数具有大约 16 位十进制数字的精度。见Floating point in modern computers。
标签: python-3.x type-conversion int