代码之家  ›  专栏  ›  技术社区  ›  sahasrara62

如何在python中使用八倍精度

  •  -1
  • sahasrara62  · 技术社区  · 5 年前

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

    我所做的许多解决方案之一是

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

    我发现是由于浮点数错误。 IEEE_754#Basic_and_interchange_formats

    在链接中,给定了二进制256(八倍精度)。

    在python中没有发现任何有用的东西来实现它。

    1 回复  |  直到 5 年前
        1
  •  0
  •   chepner    5 年前

    “默认精度”意味着您可以选择不同的精度。你不能。

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

    数字.实数(浮点数)

    这些表示机器级别的双精度 浮点数。 你受底层机器的摆布 溢流处理。 Python不支持单精度 浮点数;节省的处理器和内存使用 使用它们的原因通常比 有两种浮点数的语言。

    不能保证你 IEEE 754浮点值。