【发布时间】:2014-01-28 15:29:42
【问题描述】:
根据Python integer ranges 中的答案,Python 应该具有“任意精度整数”。但这个结果显然不是任意精度:
$ python -c 'print("%d" % (999999999999999999999999/3))'
333333333333333327740928
根据PEP 237,bignum是任意大的(不仅仅是C的long类型的大小)。 Wikipedia 表示 Python 的 bignum 是任意精度。
那么为什么上面这行代码的结果不正确呢?
【问题讨论】:
-
在我的盒子里它按预期工作,即使增加 9 的数量
-
嗯,问题似乎只出在 Python3 和
print语句上 -
Python 确实 具有任意精度的整数。您的代码创建的数字不是整数。
-
一个
python3 -c "print(999999999999999999999999 / 3)"会立即向您显示问题(它打印一个浮点数而不是整数)。
标签: python arbitrary-precision