Python:如何确定可以精确表示哪些float值,并在不正确时发出警告?

时间:2019-05-14 23:59:54

标签: python python-3.x overflow underflow

我知道我的python版本使用64位表示形式,因此应该有一些公式来计算哪些浮点数可以精确表示。

>>> 3.00000000000000022203 == 3.0
True
>>> 3.00000000000000022205 == 3.0
False

当无法精确表示精度时,我该如何正确捕捉?

  

如果目的是检查某些东西可以用Python表示   浮动(而不是简单地以任意精度精确表示)   二进制浮点数),然后检查分母是否是幂   仅两个是不够的:您还需要检查分子是否为   适当限制。 (并且避免了下溢和溢出。)   一个简单的反例,请考虑10 ** 23-How to determine if a decimal fraction can be represented exactly as Python float?

的Mark Dickinson

那篇文章只讨论了如何处理小数,但也没有讨论非常大的数字。

1 个答案:

答案 0 :(得分:0)

您可以计算出您的float文字是否可以正确表示,但是会引发异常怎么办?如果使用浮点数,那是因为您需要该浮点数。也许我不明白您要做什么。

如果需要,可以使用Decimal来更准确地存储十进制文字。