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
לא מציעה אותו מחוץ לקופסא.
ראה גם
- התיעוד של Ruby לשיטת
round
של Floats. - תקן IEEE לחישוב אריתמטי נקודה צפה (IEEE 754).
- הבנת דיוק נקודה צפה, להבנה עמוקה יותר איך מחשבים מתמודדים עם מספרים עשרוניים.