बढ़ने के बजाय घटने के बाद मैं एक अजीब मामले पर गिर गया। मैंने यहां Pyson से पोस्ट किए गए तीन समाधानों में से किसी एक को आजमाया: Increment a python floating point value by the smallest possible amount। जब मैं इस फ़्लोटिंग पॉइंट पर उतरता हूं तो सभी तीन समाधान एक अजीब व्यवहार प्रदर्शित करते हैं: 1.15898324042702949299155079643242061138153076171875।numpy.nextafter
Let कहते हैं कि मैं निम्नलिखित कोड है:
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