我遇到这个问题是为了检查一个数是否可以被5整除。
我所做的许多解决方案之一是
def f(x): return x/5==x//5
我发现是由于浮点数错误。 IEEE_754#Basic_and_interchange_formats
在链接中,给定了二进制256(八倍精度)。
在python中没有发现任何有用的东西来实现它。
“默认精度”意味着您可以选择不同的精度。你不能。
从 https://docs.python.org/3/reference/datamodel.html :
数字.实数(浮点数) 这些表示机器级别的双精度 浮点数。 你受底层机器的摆布 溢流处理。 Python不支持单精度 浮点数;节省的处理器和内存使用 使用它们的原因通常比 有两种浮点数的语言。
数字.实数(浮点数)
这些表示机器级别的双精度 浮点数。 你受底层机器的摆布 溢流处理。 Python不支持单精度 浮点数;节省的处理器和内存使用 使用它们的原因通常比 有两种浮点数的语言。
不能保证你 有 IEEE 754浮点值。