การปัดเศษของตัวเลข

Ruby:
การปัดเศษของตัวเลข

วิธีการ:

# การปัดเศษพื้นฐาน
puts 3.14159.round      # => 3
puts 2.6.round          # => 3

# การระบุความแม่นยำ
puts 3.14159.round(2)   # => 3.14
puts 2.675.round(2)     # => 2.68

# การปัดลง
puts 2.9.floor          # => 2

# การปัดขึ้น
puts 2.1.ceil           # => 3

# การปัดไปทางศูนย์
puts -2.9.round         # => -3
puts -2.9.truncate      # => -2

ผลลัพธ์ตัวอย่าง:

3
3
3.14
2.68
2
3
-3
-2

ลงลึก

การปัดเศษตัวเลขไม่ใช่เรื่องใหม่—มนุษย์ทำแบบนี้มาหลายศตวรรษแล้วเพื่อทำให้การคำนวณง่ายขึ้นหรือเพื่อทำงานในขีดจำกัดของเครื่องมือของพวกเขา ใน Ruby, วิธี round มีความหลากหลาย, ด้วยความสามารถในการปัดเศษไปยังตัวเลขเต็มที่ใกล้ที่สุดโดยค่าเริ่มต้นหรือไปยังทศนิยมที่ระบุ

ทางเลือกของ round คือ floor สำหรับการปัดเศษลงเสมอ และ ceil สำหรับการปัดเศษขึ้นเสมอ ไม่ว่าค่าของตัวเลขจะเป็นอย่างไร หากต้องการตัดทศนิยมออกเท่านั้น คุณมี truncate

ในอดีต, เมื่อมาถึงคอมพิวเตอร์ การปัดเศษเป็นเรื่องสำคัญในการจัดการกับคณิตศาสตร์ทศนิยมลอยเนื่องจากความไม่แม่นยำที่เกิดขึ้นเป็นพื้นฐาน Ruby, เช่นเดียวกับภาษาส่วนใหญ่ ปฏิบัติตามมาตรฐาน IEEE 754 สำหรับตัวเลขทศนิยมลอย ซึ่งหมายความว่ามันจัดการกับการปัดเศษในวิธีที่โปรแกรมเมอร์ส่วนใหญ่คาดหวังและพึ่งพาได้

อย่างไรก็ตาม ยังมีอะไรมากกว่านั้น—เรื่องเช่น การปัดเศษแบบนายธนาคาร (ที่รู้จักกันว่าเป็นการปัดเศษไปทางครึ่งให้เป็นคู่) เป็นแนวคิดที่นักพัฒนา Ruby อาจต้องดำเนินการด้วยตัวเอง เนื่องจากวิธี round ไม่ได้เสนอมันออกมาตรงๆ

ดูเพิ่มเติม