7
我倒在一个奇怪的情况下。我尝试了Pyson发布的三种解决方案中的任意一种:Increment a python floating point value by the smallest possible amount。当我登陆这个浮点时,所有这三个解决方案都显示出奇怪的行为:1.15898324042702949299155079643242061138153076171875。numpy.nextafter递减,而不是递增
让说我有下面的代码:
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