我试图确定与零比较时python浮点数的精确度。请注意以下几点:
1e-323 == 0
> False
1e-324 == 0
> True
至少在我正在运行的实现中(Python 2.7,CPython),我看来阈值为324个小数点。在任何地方都有记录吗?是否依赖于实现?
答案 0 :(得分:7)
数字。实数(浮点数)
这些代表机器级别的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)