2015-02-22 13 views

risposta

18

Se si desidera questo solo per scopi di visualizzazione, utilizzare il formatting syntax built into println!(). Ad esempio, per stampare un numero arrotondato a 2 cifre decimali utilizzare l'identificatore di formato {:.2}:

fn main() { 
    let x = 12.34567; 
    println!("{:.2}", x); 
} 

Se si vuole mettere il numero arrotondato in una stringa, utilizzare il format!() macro.

Se si desidera arrotondare un numero e ottenere il risultato come un altro numero, moltiplicare il numero per la potenza indicata di 10, chiamare e dividerlo con la stessa potenza, ad es. per arrotondare a 2 decimali, utilizzare 10 = 100.

fn main() { 
    let x = 12.34567_f64; 
    let y = (x * 100.0).round()/100.0; 

    println!("{:.5} {:.5}", x, y); 
} 

playground

Questo stampa 12.34567 12.35000.

Se il numero di posizioni decimali non è noto al momento della compilazione, è possibile utilizzare powi per calcolare in modo efficiente la potenza rilevante.

Si noti che questo verrà suddiviso per numeri molto grandi; in particolare, i numeri maggiori di power (dove power è la potenza di dieci, ad esempio 100 nell'esempio sopra) diventeranno infiniti nella moltiplicazione e rimarranno infinito dopo. Tuttavia, f64 non può rappresentare spazi frazionari per numeri maggiori di 2 (vale a dire che sono sempre numeri interi), quindi è possibile che casi eccezionali di numeri così grandi si possano semplicemente restituire.

Problemi correlati