Was ist der beste Weg, um ein double
in ein umzuwandeln int
? Sollte eine Besetzung verwendet werden?
c#
.net
casting
type-conversion
user496949
quelle
quelle
etc.
:)Antworten:
Sie können eine Umwandlung verwenden, wenn Sie das Standardverhalten zum Abschneiden gegen Null wünschen. Alternativ können Sie verwenden möchten
Math.Ceiling
,Math.Round
,Math.Floor
usw. - obwohl Sie noch eine Besetzung danach benötigen.Vergessen Sie nicht, dass der Bereich von
int
viel kleiner ist als der Bereich vondouble
. Ein Cast vondouble
bisint
löst keine Ausnahme aus, wenn der Wertint
in einem ungeprüften Kontext außerhalb des Bereichs von liegt , während ein Aufruf vonConvert.ToInt32(double)
will. Das Ergebnis der Umwandlung (in einem nicht aktivierten Kontext) ist explizit undefiniert, wenn der Wert außerhalb des Bereichs liegt.quelle
int
beträgt immer 32 Bit, unabhängig davon, ob Sie einen 32- oder 64-Bit-Computer verwenden.intVal = System.Convert.ToInt32(System.Math.Floor(dblVal));
using System;
oben in der Datei haben, an welchem Punkt es einfach sein könnteintVal = Convert.ToInt32(Math.Floor(dblVal));
using
Anweisungen zu informieren .Wenn Sie also cast verwenden, werden
(int)SomeDouble
Sie den Bruchteil abschneiden. Das heißt, wennSomeDouble
4.9999 wäre , wäre das Ergebnis 4, nicht 5. Die Konvertierung in int rundet die Zahl nicht. Wenn Sie Rundungen verwenden möchtenMath.Round
quelle
Ja, warum nicht?
Die Verwendung der
Convert
Klasse funktioniert auch gut.quelle
Convert.ToInt32
ist der beste Weg, um zu konvertierenquelle
Der beste Weg ist einfach zu verwenden
Convert.ToInt32
. Es ist schnell und rundet auch richtig.Warum es komplizierter machen?
quelle
Hier ist ein vollständiges Beispiel
Wenn Sie die Zahl auf die engere Ganzzahl runden möchten, gehen Sie wie folgt vor:
quelle
Ich denke der beste Weg ist
Convert.ToInt32
.quelle
int myInt = (int) Math.Ceiling (myDouble);
quelle
Meine Wege sind:
quelle
double_value = 0.1
Wenn Sie es an ein Etikett oder etwas anderes senden möchten und keine Teilkomponente möchten, ist dies der beste Weg
wenn du mit nur 2 willst, und es ist immer so
quelle