Wie rundet man eine f64 Gleitkommazahl in Rust auf eine bestimmte Anzahl von Stellen?
Wenn Sie dies nur für Anzeigezwecke möchten, verwenden Sie die Formatierungssyntax, die in println!()
integriert ist . Um beispielsweise eine auf 2 Dezimalstellen gerundete Zahl zu drucken, verwenden Sie den Formatbezeichner {:.2}
:
Wenn Sie die gerundete Zahl in eine Zeichenfolge einfügen möchten, verwenden Sie das Makro format!()
.
Wenn Sie eine Zahl runden möchten und das Ergebnis als eine andere Zahl zurückgeben möchten, dann multiplizieren Sie die Zahl mit der angegebenen Potenz von 10, rufen Sie round
, und dividiere durch die gleiche Potenz, z Um auf 2 Dezimalstellen zu runden, verwenden Sie 10 2 = 100.
Dies druckt 12.34567 12.35000
.
Wenn die Anzahl der Dezimalstellen zur Kompilierzeit nicht bekannt ist, könnte man powi
, um die relevante Leistung effizient zu berechnen.
Beachten Sie, dass dies bei sehr großen Zahlen auftritt; insbesondere werden Zahlen, die größer als std::f64::MAX / power
sind (wobei power
die Potenz von zehn ist, beispielsweise 100 in dem obigen Beispiel), in der Multiplikation unendlich und bleiben danach unendlich. % Co_de% kann jedoch keine Bruchstellen für Zahlen darstellen, die größer als 2 53 sind (d. H. Sie sind immer ganze Zahlen). Daher kann man besonders große Zahlen einfach selbst zurückgeben.
Tags und Links rust