ฉันเพิ่งอ่านใหม่มีอะไรใหม่ใน Python 3.0และระบุว่า:
กลยุทธ์การปัดเศษฟังก์ชัน round () และประเภทส่งคืนได้เปลี่ยนไป กรณีครึ่งทางที่แน่นอนจะถูกปัดเศษเป็นผลลัพธ์คู่ที่ใกล้เคียงที่สุดแทนที่จะอยู่ห่างจากศูนย์ (ตัวอย่างเช่น round (2.5) ส่งคืน 2 แทน 3)
และเอกสารสำหรับรอบ :
สำหรับประเภทในตัวที่สนับสนุนรอบ () ค่าจะถูกปัดเศษเป็นพหุคูณที่ใกล้เคียงที่สุดของ 10 ถึงกำลังไฟฟ้าลบ n; หากสองทวีคูณใกล้กันเท่ากันการปัดเศษจะไปทางเลือกคู่
ดังนั้นภายใต้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, Perl, .. ) ที่ปัดเศษ (กับฉันไม่สอดคล้องกัน) หรือไม่?
ฉันหายไปนี่อะไร
อัปเดต: @ Li-aungYip ความคิดเห็นของอีกครั้ง "การปัดเศษของธนาคาร" ให้คำค้นหา / คำหลักที่ถูกต้องในการค้นหาและฉันพบคำถามดังกล่าว: ทำไม. NET ใช้การปัดเศษของธนาคารเป็นค่าเริ่มต้น ดังนั้นฉันจะอ่านอย่างระมัดระวัง