Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用八重精度_Python_Floating Point - Fatal编程技术网

如何在python中使用八重精度

如何在python中使用八重精度,python,floating-point,Python,Floating Point,我遇到这个问题是为了检查一个数字是否可以被5整除 我所做的许多解决方案之一是 def f(x): return x/5==x//5 这运行正常,最大值为2^53-1或10^17位。更重要的是,它给了我错误 我发现这是由于浮点错误。 在链接中,给出了二进制256(八倍精度) 没有发现任何有助于在python中实现此功能的内容 另外,我不需要解决方案来检查数字是否可以被5整除。默认精度意味着您可以选择不同的精度。你不能 发件人: 数字。实数(浮点) 这些表示机器级别的双精度 浮点数您受

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

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

def f(x):
     return x/5==x//5
这运行正常,最大值为2^53-1或10^17位。更重要的是,它给了我错误

我发现这是由于浮点错误。

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

没有发现任何有助于在python中实现此功能的内容

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

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

发件人:

数字。实数(浮点)

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


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

即使您对问题提出了更高的精度,这种方法仍然是错误的。而且,即使是四倍精度也很难找到支持,更不用说八倍精度了。你直接跳到八倍精度的事实是一个警告信号,表明你认为精度是错误的。我知道这种方法是错误的,这里我“/”采用的是二进制精度,我的意思是,有没有一种方法可以改变“/”所采用的默认精度,试图在这个特定问题上使用更多的浮点精度,就像试图买一把更大的枪来射自己的脚一样。你是否有一个更精确的问题可以解决?有很多更精确的选项,从
numpy.longdouble
decimal.decimal
fracts.fracts
gmpy2
,再到将计算重新格式化为整数运算,但选择什么选项取决于您需要解决的问题。