gpt4 book ai didi

python - 整个 float 与整数 OverflowError

转载 作者:太空宇宙 更新时间:2023-11-04 06:50:31 24 4
gpt4 key购买 nike

尝试在您的 Python 3.3.2 IDLE 中输入这个,希望我不是唯一想知道并且愿意理解为什么会发生这种情况的人。

>>> n = 331
>>> d = 165.0 # float number
>>> a = 174
>>>
>>> a**d % n
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
a**d % n
OverflowError: (34, 'Result too large')

>>> d = int(d)
>>> a**d % n
330

float 到底是如何工作的,为什么会这样?谢谢。

最佳答案

float 是一个 IEEE 754 double-precision floating point number ,这意味着它可以容纳一个最大值(略高于 10**308)。*

int 是一个任意精度的整数,它增长的字节数与保存任何值所需的字节数一样多,因此它不会溢出。

这在 Numeric Types - int, float, complex 下的文档中进行了描述.


* 从技术上讲,Python 不保证它是 IEEE 754 double;它只是说它通常是一个 C double,而一个 C double 通常是一个 IEEE 754 double...要查看您平台上的实际限制,请尝试 sys。 float_info.

关于python - 整个 float 与整数 OverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18928004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com