Rust:
Zahlen runden

Wie:

Rust macht das Runden zum Kinderspiel. Schauen Sie sich diese Methoden für die Typen f32 oder f64 an:

fn main() {
    let num = 2.34567;

    // Auf die nächste ganze Zahl runden
    let round = num.round();
    println!("Runden: {}", round); // Runden: 2

    // Floor - die größte ganze Zahl, die kleiner oder gleich der Zahl ist
    let floor = num.floor();
    println!("Floor: {}", floor); // Floor: 2

    // Ceil - die kleinste ganze Zahl, die größer oder gleich der Zahl ist
    let ceil = num.ceil();
    println!("Ceil: {}", ceil); // Ceil: 3

    // Truncate - ganzzahliger Teil ohne Nachkommastellen
    let trunc = num.trunc();
    println!("Truncate: {}", trunc); // Truncate: 2

    // Auf das nächste Vielfache einer Zehnerpotenz runden
    let multiple_of_ten = (num * 100.0).round() / 100.0;
    println!("Auf 2 Dezimalstellen gerundet: {}", multiple_of_ten); // Auf 2 Dezimalstellen gerundet: 2.35
}

Tiefergehend

Historisch war das Runden ausschlaggebend, um unendliche Dezimalzahlen oder irrationale Zahlen in begrenzten digitalen Räumen unterzubringen – ein Muss für alte Computer mit knappem Speicher. Denken Sie an einen Abakus, aber weniger kunstvoll, mehr Mathematik.

Alternativen zu den nativen Rust-Methoden umfassen:

  1. Die format!-Makro für die String-Formatierung, die standardmäßig rundet.
  2. Externe Crates für spezialisierte mathematische Aufgaben, wie das round-Crate mit mehr granularer Steuerung.

Unter der Haube entsprechen Rusts Rundungsoperationen den IEEE-Standards - Fachjargon für “es rundet so, wie Ihr Mathelehrer es möchte.” Außerdem können aufgrund von binären Darstellungen einige Zahlen nicht traditionell gerundet werden, wie zum Beispiel 0,1, aufgrund ihrer unendlichen Darstellung im Binärsystem.

Siehe auch