Konvertieren von float zu integer in Rust
double b = a / 100000;
b = (int) b;
b *= 100000;
Wie der obige C-code umgewandelt wird, um Rost? Vor allem die Zeile #2, Runden die Anzahl.
Du musst angemeldet sein, um einen Kommentar abzugeben.
double b = a / 100000;
b = (int) b;
b *= 100000;
Wie der obige C-code umgewandelt wird, um Rost? Vor allem die Zeile #2, Runden die Anzahl.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst: das ist nicht wahr. Zum "Runden" eine reelle Zahl ist Rückkehr die nächste Ganzzahl. Sie erst konvertieren, um
int
was verwirft alle nicht-ganzzahligen Teile.Aber hier ist der Rost entspricht Ihrer genauen code (sofern
a
hat der Typf64
):Die, natürlich, können in eine Zeile geschrieben werden, auch:
Wenn Sie wollten, Runden, anstatt einfach nur den ganzzahligen Teil, die Sie verwenden können, die
round
Methode derf64
:Beachten Sie, dass es auch
trunc
,ceil
undBoden
. Sie können verwenden Sie eine dieser Methoden, um genau kontrollieren, was passiert, anstatt sich auf die Besetzung. Aus der Rost-Buch können wir lernen:Dieses Verhalten entspricht
trunc
, aber wenn das Verhalten nicht egal ist, sollten Sie verwendentrunc
zu ...Cast von float zu einem integer, die Sie verwenden können,
da
. Zum Beispiel:Dies ist ein Beispiel für Runde in Rust.
Schreiben Sie numerische Konstanten direkt den Typ Sie sind:
zum Beispiel, wenn d f64 und Sie wollen, multiplizieren Sie mit 10 der rechts-Konvention ist zu schreiben:
d * 10.0
statt:
d * 10
explizit definieren Sie den Typ der variable, um die Funktion round zur Verfügung in diesen Fällen.