Python浮点数的精度(小数点)是多少?

问题描述 投票:0回答:1

我试图确定 python 浮点数与零相比的精确度。请遵守以下几点:

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

我发现阈值是 324 个小数点,至少对于我正在运行的实现(python 2.7,CPython)来说是这样。这有记录在任何地方吗?它依赖于实现吗?

python floating-point
1个回答
9
投票

它是特定于实现的

numbers.Real
float

这些代表机器级双精度 精度浮点数。你受着 底层机器架构(以及 C 或 Java 实现) 可接受的范围和溢出处理。 Python 不支持 单精度浮点数;节省处理器和 通常使用这些的原因的内存使用量相形见绌 由于在 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)
© www.soinside.com 2019 - 2024. All rights reserved.