Numerojen pyöristäminen

Rust:
Numerojen pyöristäminen

Kuinka:

Rust tekee pyöristämisestä tuulenhuuhtoman. Tutustu näihin menetelmiin f32 tai f64 tyypeille:

fn main() {
    let num = 2.34567;

    // Pyöristä lähimpään kokonaislukuun
    let round = num.round();
    println!("Pyöristys: {}", round); // Pyöristys: 2

    // Lattia - suurin kokonaisluku, joka on pienempi tai yhtä suuri kuin numero
    let floor = num.floor();
    println!("Lattia: {}", floor); // Lattia: 2

    // Katto - pienin kokonaisluku, joka on suurempi tai yhtä suuri kuin numero
    let ceil = num.ceil();
    println!("Katto: {}", ceil); // Katto: 3

    // Trunkkaus - kokonaislukuosa ilman desimaalilukuja
    let trunc = num.trunc();
    println!("Trunkkaus: {}", trunc); // Trunkkaus: 2

    // Lähimpään kymmenen potenssin monikertaan
    let multiple_of_ten = (num * 100.0).round() / 100.0;
    println!("Pyöristetty 2 desimaalin tarkkuuteen: {}", multiple_of_ten); // Pyöristetty 2 desimaalin tarkkuuteen: 2.35
}

Syväsukellus

Historiallisesti pyöristäminen on ollut ratkaisevaa, jotta äärettömät desimaalit tai irrationaaliset numerot mahtuvat rajoitettuihin digitaalisiin tiloihin - välttämättömyys muinaisille tietokoneille, joilla oli niukasti muistia. Ajattele abakusta, mutta vähemmän nikkarointia, enemmän matikkaa.

Vaihtoehdot Rustin natiivimenetelmille sisältävät:

  1. format! makro merkkijonojen muotoiluun, joka oletusarvoisesti pyöristää.
  2. Ulkoiset pakkaukset erikoistuneisiin matemaattisiin tehtäviin, kuten round pakkaus tarkemmalla hallinnalla.

Rustin pyöristysoperaatiot noudattavat IEEE-standardeja - tekninen jargoni sille, että “se pyöristää kuten matikan opettajasi haluaa.” Lisäksi, binääriesitysten vuoksi jotkut numerot, kuten 0.1, eivät voi perinteisesti pyöristyä niiden äärettömän binääriesityksen vuoksi.

Katso Myös