मैं सिर्फ पाइथन 3.0 में नया क्या पढ़ रहा था और यह बताता है:
राउंड () फ़ंक्शन राउंडिंग रणनीति और रिटर्न प्रकार बदल गए हैं। सटीक आधे मामले अब शून्य से दूर होने के बजाय निकटतम परिणाम तक पहुंच गए हैं। (उदाहरण के लिए, राउंड (2.5) अब 3 के बजाय 2 रिटर्न।)
और दौर के लिए प्रलेखन :
अंतर्निहित प्रकारों के लिए समर्थन दौर () में, मानों को शक्ति माइनस n के 10 के निकटतम कई पर गोल किया जाता है; यदि दो गुणक समान रूप से पास हैं, तो गोलाई भी पसंद के अनुसार की जाती है
तो, v2.7.3 के तहत :
In [85]: round(2.5)
Out[85]: 3.0
In [86]: round(3.5)
Out[86]: 4.0
जैसा कि मुझे उम्मीद थी। हालाँकि, अब v3.2.3 के तहत :
In [32]: round(2.5)
Out[32]: 2
In [33]: round(3.5)
Out[33]: 4
यह काउंटर-सहज ज्ञान युक्त लगता है और इसके विपरीत जो मैं गोलाई के बारे में समझता हूं (और लोगों को यात्रा करने के लिए बाध्य करता हूं)। अंग्रेजी मेरी मूल भाषा नहीं है, लेकिन जब तक मैंने इसे पढ़ा, मुझे लगा कि मुझे पता है कि गोलाई का क्या मतलब है: - / मुझे यकीन है कि उस समय v3 पेश किया गया था, इस बारे में कुछ चर्चा हुई होगी, लेकिन मैं एक अच्छा कारण खोजने में असमर्थ था मेरी खोज।
- क्या किसी को इस बात की जानकारी है कि इसे क्यों बदला गया?
- क्या कोई अन्य मुख्यधारा की प्रोग्रामिंग भाषाएं हैं (उदाहरण के लिए, C, C ++, Java, पर्ल, ..) जो इस तरह की (मेरे लिए असंगत) गोलाई में हैं?
मुझे यहां क्या समझ नहीं आ रहा है?
अद्यतन करें: @ Li-aungYip की टिप्पणी "बैंकर की गोलाई" ने मुझे खोज करने के लिए सही खोज शब्द / कीवर्ड दिए और मुझे यह SO प्रश्न मिला: .NET डिफ़ॉल्ट रूप में बैंकर की गोलाई का उपयोग क्यों करता है? , इसलिए मैं इसे ध्यान से पढ़ूंगा।