Python Int 和 Float 数据类型范围

Python Int and Float datatype range

任何人都可以澄清 python 3 中的 int 和 float 数据类型是否没有最大或最小限制?另外 fractions.Fraction 和 decimal.Decimal 有什么用?

int没有限制。您可以从系统调用中获取浮动限制

>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

Python 使用二进制浮点数,您在十进制和浮点数之间转换时失去了一些精度。在处理由浮点数估计的分数时,你也会失去精度。 decimal 以 10 为基数进行数学计算,以速度变慢为代价减少了转换问题。 fractions 试图将事物保留为分数以避免这种估计水平。

在Python中,整数的值不受位数的限制,可以扩展到可用内存的限制。

对于浮动看一下sys.float_info:

>>> import sys
>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2
250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsil
on=2.2204460492503131e-16, radix=2, rounds=1)

要回答第二部分,请在以下链接中找到信息:

https://docs.python.org/3/library/fractions.html

https://docs.python.org/2/library/decimal.html