Wie rundet man eine f64 Fließkommazahl in Rust auf eine bestimmte Anzahl von Stellen?Wie wird eine Gleitkommazahl auf eine bestimmte Anzahl von Stellen gerundet?
Antwort
Wenn Sie dies nur für Anzeigezwecke möchten, verwenden Sie die formatting syntax built into println!()
. Um zum Beispiel eine Zahl gerundet auf 2 Dezimalstellen verwenden, um die {:.2}
Formatbezeichner zu drucken:
fn main() {
let x = 12.34567;
println!("{:.2}", x);
}
Wenn Sie die gerundete Zahl in einen String setzen wollen, die format!()
macro verwenden.
Wenn Sie eine Zahl runden 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
auf und teilen Sie sie mit der gleichen Potenz, z. auf rund 2 Dezimalstellen, 10 verwenden = 100.
fn main() {
let x = 12.34567_f64;
let y = (x * 100.0).round()/100.0;
println!("{:.5} {:.5}", x, y);
}
Dieser druckt 12.34567 12.35000
.
Wenn die Anzahl der Dezimalstellen zur Kompilierzeit nicht bekannt ist, könnte powi
verwendet werden, um die entsprechende Leistung effizient zu berechnen.
Beachten Sie, dass dies für sehr große Zahlen zusammenbrechen wird; insbesondere werden Zahlen größer als std::f64::MAX/power
(wobei power
die Zehnerpotenz ist, beispielsweise 100 im obigen Beispiel) in der Multiplikation unendlich und bleiben danach unendlich. f64
kann jedoch keine gebrochenen Stellen für Zahlen größer als 2 darstellen (d. H. Sie sind immer ganze Zahlen), so dass man Sonderfälle wie große Zahlen einfach selbst zurückgeben kann.
- 1. Warte auf eine bestimmte Anzahl von Objekten?
- 2. Wie wird in .NET ein doppelter Wert auf eine ausgewählte Anzahl von Dezimalstellen gerundet?
- 3. Twig - Wie eine bestimmte Anzahl von Wiederholungen
- 4. Eine Liste auf eine bestimmte Anzahl von Elementen abschneiden
- 5. Wie wird eine Dezimalzahl auf eine bestimmte Anzahl von Ziffern aufgerundet?
- 6. Wie wird eine Gleitkommazahl nach einer bestimmten Anzahl von Dezimalstellen abgeschnitten (keine Rundung)?
- 7. Wie wird auf eine bestimmte Seite umgeleitet?
- 8. So stellen Sie eine Bereitstellung für eine bestimmte Instanz bereit
- 9. Wie wird eine Dezimalstelle für die Ausgabe gerundet?
- 10. auf eine beliebige Anzahl von signifikanten Stellen in JavaScript Rundung wird nicht
- 11. Wie wird eine bestimmte Anzahl von Bildern basierend auf einem sich ändernden Int angezeigt?
- 12. Wie wird auf ein Vielfaches einer bestimmten Anzahl von JavaScript gerundet?
- 13. Ich brauche eine beliebige Anzahl + eine bestimmte Anzahl in Java
- 14. Wie zeigt/versteckt man eine bestimmte Anzahl von Divs?
- 15. Wie wird der Dezimalwert auf den nächsten 0,05 Wert gerundet?
- 16. Increment eine Gleitkommazahl HTML/JavaScript
- 17. Wie gruppiere ich eine bestimmte Anzahl von Elementen mit jQuery?
- 18. Wie verschleiern eine bestimmte Klasse auf Android?
- 19. Wie fügt man StringBuilder eine bestimmte Anzahl von Leerzeichen hinzu?
- 20. Wie zeigt man eine bestimmte Anzahl von Dezimalziffern an?
- 21. MySQL - Wie paginiert man durch eine bestimmte Anzahl von Zeilen?
- 22. Teilen Sie eine Gleitkommazahl in diskrete Segmente
- 23. Warum wird TimeSpan.FromSeconds (doppelt) auf Millisekunden gerundet?
- 24. Eine große Zahl fälschlicherweise in Javascript gerundet
- 25. Stellen Timeout auf eine Operation
- 26. Breaking, wenn eine bestimmte Anzahl von Bytes zugeordnet ist
- 27. Geben Sie eine bestimmte Anzahl von Zeichenfolgen in Python zurück.
- 28. Ersetzen Sie eine bestimmte Anzahl in der Datei auf ssh
- 29. Suchen Sie eine bestimmte Zeile in einer Datei basierend auf Benutzereingaben und löschen Sie eine bestimmte Anzahl von Zeilen
- 30. Python - Anzahl der Stellen im Exponenten