Python numpy.nextafter递减而不是递增

Python numpy.nextafter递减而不是递增,python,numpy,posix,c99,Python,Numpy,Posix,C99,我碰到了一个奇怪的案子。我尝试了Pyson发布的三种解决方案之一:。当我在这个浮点上着陆时,这三种解决方案都显示出一种奇怪的行为:1.15898324042702949299155079643242061138153076171875 假设我有以下代码: import numpy as np from __future__ import division a = 1.15898324042702949299155079643242061138153076171875 b = 0 b = np.

我碰到了一个奇怪的案子。我尝试了Pyson发布的三种解决方案之一:。当我在这个浮点上着陆时,这三种解决方案都显示出一种奇怪的行为:1.15898324042702949299155079643242061138153076171875

假设我有以下代码:

import numpy as np
from __future__ import division

a = 1.15898324042702949299155079643242061138153076171875
b = 0
b = np.nextafter(a,1)
print a, b
出于某种原因,它不是以尽可能小的量递增
b
,而是递减。 为什么呢

以下是我在游戏中得到的一些快速结果:

In [12]: a = 1.15898324042702949299155079643242061138153076171875

In [13]: a
Out[13]: 1.1589832404270295

In [14]: numpy.nextafter(a,1)
Out[14]: 1.1589832404270293

In [15]: numpy.nextafter(a,-1)
Out[15]: 1.1589832404270293
从文档(我的重点):

第二个参数不是+/-1给出的方向,而是要瞄准的值

In [12]: a = 1.15898324042702949299155079643242061138153076171875

In [13]: a
Out[13]: 1.1589832404270295

In [14]: numpy.nextafter(a, 0)
Out[14]: 1.1589832404270293

In [15]: numpy.nextafter(a, 1)
Out[15]: 1.1589832404270293

In [16]: numpy.nextafter(a, 1.16)
Out[16]: 1.1589832404270297

In [17]: numpy.nextafter(a, 2)
Out[17]: 1.1589832404270297
In [12]: a = 1.15898324042702949299155079643242061138153076171875

In [13]: a
Out[13]: 1.1589832404270295

In [14]: numpy.nextafter(a, 0)
Out[14]: 1.1589832404270293

In [15]: numpy.nextafter(a, 1)
Out[15]: 1.1589832404270293

In [16]: numpy.nextafter(a, 1.16)
Out[16]: 1.1589832404270297

In [17]: numpy.nextafter(a, 2)
Out[17]: 1.1589832404270297