如何在python中使用Octuple精度

时间:2019-05-12 20:11:08

标签: python floating-point

我遇到了这个问题,以检查数字是否可以被5整除。

我已完成的许多解决方案之一是

def f(x):
     return x/5==x//5

运行正常,最大2 ^ 53-1或10 ^ 17位数。除此之外,它给了我错误。

我发现这是由于floatig point错误。 IEEE_754#Basic_and_interchange_formats

在链接中,假定存在binary256(八倍精度)。

找不到任何有用的方法来在python中实现。

ps。我不需要解决方案来检查数字是否可以被5整除。

1 个答案:

答案 0 :(得分:0)

“默认精度”表示您可以选择其他精度。你不能。

来自https://docs.python.org/3/reference/datamodel.html

  

数字。实数(浮点数)

     

这些代表机器级别的双精度   浮点数字。 您受底层计算机的摆布   可接受范围的体系结构(以及C或Java实现)   处理溢出。 Python不支持单精度   浮点数字;节省的处理器和内存使用量   通常,使用这些工具的原因与以下方法的开销相形见war   在Python中使用对象,因此没有理由使   具有两种浮点数的语言。

无法保证您甚至拥有 IEEE 754浮点值。