python float的精度(小数点后)是多少?

时间:2018-08-28 18:13:47

标签: python floating-point

我试图确定与零比较时python浮点数的精确度。请注意以下几点:

1e-323 == 0
> False
1e-324 == 0
> True

至少在我正在运行的实现中(Python 2.7,CPython),我看来阈值为324个小数点。在任何地方都有记录吗?是否依赖于实现?

1 个答案:

答案 0 :(得分:7)

它是implementation-specific

  

数字。实数(浮点数)

     

这些代表机器级别的double   精度浮点数。你受了   的基础机器架构(以及C或Java实现)   可接受范围和溢出处理。 Python不支持   单精度浮点数;节省处理器和   通常使用它们的原因的内存使用情况相形见f   减少了在Python中使用对象的开销,因此没有理由   用两种浮点数使语言复杂化。

但是,您可以在运行时查询以下信息:

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