python中可以表示的最小数字是多少?

时间:2015-10-14 16:40:43

标签: python floating-point

python中可以表示的最小数字是多少?

我见过2.05623357236e-296这么小但可以有更小的吗?

2 个答案:

答案 0 :(得分:7)

查看sys.float_info

>>> import sys
>>> 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)

来自文档

min       DBL_MIN      minimum positive normalized float 
min_exp   DBL_MIN_EXP  minimum integer e such that radix**(e-1) is a normalized float

在我的系统上,它被称为min=2.2250738585072014e-308

答案 1 :(得分:5)

检查sys.float_info.min。请注意,这是规范化值的最小值;最小denormalized value可能更小,但数值精度会受到影响。

对于通常的64位浮点数,标准化的min约为2.2e-308。非规范化的最小值可以小得多,低至4.94e-324

>>> 5e-324
4.9406564584124654e-324

值得指出的是,decimal模块的Decimal类型可以代表任意小数,仅受可用内存的限制。