Garip bir duruma düştüm. Pyson'dan gönderilen üç çözümden birini denedim: Increment a python floating point value by the smallest possible amount. Bu üç kayan noktaya indiğimde üç çözümün tümü garip bir davranış sergiliyor: 1.15898324042702949299155079643242061138153076171875. yerine mümkün olan en küçük miktarda b
artan nedeniyle, azaltılır, Nedensenumpy.nextafteri azaltma yerine
import numpy as np
from __future__ import division
a = 1.15898324042702949299155079643242061138153076171875
b = 0
b = np.nextafter(a,1)
print a, b
:
Let Aşağıdaki kod var derler. Neden?
nextafter(x1, x2[, out])
Return the next representable floating-point value after x1 **in the direction
of x2 element-wise**.
İkinci argüman +/- tarafından verilen bir yönü değildir:
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