Rust:
עיגול מספרים

איך לעשות:

Rust הופך את העיגול לקל מאוד. בדקו את השיטות האלה עבור סוגי f32 או f64:

fn main() {
    let num = 2.34567;

    // לעגל למספר השלם הקרוב ביותר
    let round = num.round();
    println!("Round: {}", round); // Round: 2

    // Floor - המספר השלם הגדול ביותר שאינו גדול מהמספר
    let floor = num.floor();
    println!("Floor: {}", floor); // Floor: 2

    // Ceil - המספר השלם הקטן ביותר שאינו קטן מהמספר
    let ceil = num.ceil();
    println!("Ceil: {}", ceil); // Ceil: 3

    // Truncate - חלקו השלם של המספר ללא הספרות העשרוניות
    let trunc = num.trunc();
    println!("Truncate: {}", trunc); // Truncate: 2

    // למספר השלם הקרוב ביותר של חזקה של עשר
    let multiple_of_ten = (num * 100.0).round() / 100.0;
    println!("מעוגל לשתי ספרות עשרוניות: {}", multiple_of_ten); // מעוגל לשתי ספרות עשרוניות: 2.35
}

צלילה עמוקה

בהיסטוריה, עיגול היה קריטי להתמצאות עשרוניים אינסופיים או מספרים אי-רציונליים במרחבים דיגיטליים מוגבלים—חובה למחשבים עתיקים עם זיכרון מצומצם. חשבו על חשבונייה אבל פחות אומנותי, יותר מתמטיקה.

אלטרנטיבות לשיטות המובנות של Rust כוללות:

  1. מקרו format! לעיצוב מחרוזת שמעגלת כברירת מחדל.
  2. חבילות חיצוניות למשימות מתמטיות מורכבות, כמו חבילת round עם שליטה גרנולרית יותר.

מאחורי הקלעים, פעולות העיגול של Rust מתאימות לתקני IEEE—מונחי טכנולוגיה שמשמעותם “זה מעגל כמו שהמורה שלך למתמטיקה רוצה.” פלוס, בגלל הייצוגים הבינאריים, קיימים מספרים שלא ניתן לעגל באופן מסורתי, כמו 0.1, בשל הייצוג האינסופי שלהם בבינארי.

ראו גם