Unterschied zwischen Dezimal, Float und Double in .NET?



Answers

Präzision ist der Hauptunterschied.

Float - 7 Ziffern (32 Bit)

Double -15-16 Ziffern (64 Bit)

Decimal -28-29 signifikante Ziffern (128 Bit)

Dezimalzahlen haben eine viel höhere Genauigkeit und werden normalerweise in Finanzanwendungen verwendet, die ein hohes Maß an Genauigkeit erfordern. Dezimalstellen sind viel langsamer (bis zu 20x in manchen Tests) als ein Double / Float.

Dezimale und Floats / Doubles können nicht ohne eine Besetzung verglichen werden, während Floats und Doubles dies können. Dezimalzahlen ermöglichen auch die Codierung oder abschließende Nullen.

float flt = 1F/3;
double dbl = 1D/3;
decimal dcm = 1M/3;
Console.WriteLine("float: {0} double: {1} decimal: {2}", flt, dbl, dcm);

Ergebnis:

float: 0.3333333  
double: 0.333333333333333  
decimal: 0.3333333333333333333333333333
Question

Was ist der Unterschied zwischen decimal , float und double in .NET?

Wann würde jemand eines davon benutzen?







Der Hauptunterschied zwischen diesen beiden ist die Präzision.

float ist eine 32-bit Zahl, double ist eine 64-bit Zahl und decimal ist eine 128-bit Zahl.




Niemand hat das erwähnt

In den Standardeinstellungen verwenden Floats (System.Single) und Doubles (System.Double) niemals eine Überlaufprüfung, während Decimal (System.Decimal) immer die Überlaufprüfung verwendet.

ich meine

decimal myNumber = decimal.MaxValue;
myNumber += 1;

löst OverflowException aus .

Aber diese nicht:

float myNumber = float.MaxValue;
myNumber += 1;

&

double myNumber = double.MaxValue;
myNumber += 1;



Ganze Zahlen sind, wie erwähnt, ganze Zahlen. Sie können den Punkt nicht speichern, z. B. .7, .42 und .007. Wenn Sie Zahlen speichern müssen, die keine ganzen Zahlen sind, benötigen Sie einen anderen Variablentyp. Sie können den Double-Typ oder den Float-Typ verwenden. Sie setzen diese Typen von Variablen auf genau die gleiche Weise: Anstatt das Wort int , geben Sie double oder float . So was:

float myFloat;
double myDouble;

( float ist die Abkürzung für "floating point" und bedeutet einfach eine Zahl mit einem Punkt am Ende.)

Der Unterschied zwischen den beiden liegt in der Größe der Zahlen, die sie halten können. Für float können Sie bis zu 7 Ziffern in Ihrer Nummer haben. Für double s können Sie bis zu 16 Ziffern haben. Um genau zu sein, hier ist die offizielle Größe:

float:  1.5 × 10^-45  to 3.4 × 10^38  
double: 5.0 × 10^-324 to 1.7 × 10^308

float ist eine 32-Bit-Nummer und double ist eine 64-Bit-Nummer.

Doppelklicken Sie auf Ihre neue Schaltfläche, um den Code zu erhalten. Fügen Sie Ihrem Schaltflächencode die folgenden drei Zeilen hinzu:

double myDouble;
myDouble = 0.007;
MessageBox.Show(myDouble.ToString());

Halten Sie Ihr Programm an und kehren Sie zum Codierungsfenster zurück. Ändern Sie diese Zeile:

myDouble = 0.007;
myDouble = 12345678.1234567;

Führen Sie Ihr Programm aus und klicken Sie auf Ihren Doppelknopf. Das Nachrichtenfeld zeigt die Nummer korrekt an. Fügen Sie am Ende jedoch eine weitere Nummer hinzu, und C # wird erneut aufgerundet. Die Moral ist, wenn Sie Genauigkeit wollen, seien Sie vorsichtig beim Runden!




float ~ ± 1,5 × 10-45 bis ± 3,4 × 1038 -------- 7 Ziffern
doppelt ~ ± 5,0 x 10-324 bis ± 1,7 x 10308 ------ 15 oder 16 Ziffern
dezimal ~ ± 1,0 x 10-28 bis ± 7,9 x 1028 -------- 28 oder 29 Ziffern




Die Variablentypen Dezimal, Double und Float unterscheiden sich in der Art, in der sie die Werte speichern. Präzision ist der Hauptunterschied, bei dem Float ein Gleitkomma-Datentyp mit einfacher Genauigkeit (32 Bit), Double ein Gleitkomma-Datentyp mit doppelter Genauigkeit (64 Bit) und Dezimalzahl ein 128-Bit Gleitkomma-Datentyp ist.

Float - 32 Bit (7 Ziffern)

Double - 64 Bit (15-16 Ziffern)

Dezimal - 128 Bit (28-29 signifikante Stellen)

Der Hauptunterschied besteht darin, dass Floats und Doubles binäre Gleitkommatypen sind und ein Dezimalwert den Wert als Gleitkommaart speichert. Dezimale haben daher eine viel höhere Präzision und werden normalerweise in monetären (finanziellen) oder wissenschaftlichen Berechnungsanwendungen verwendet, die ein hohes Maß an Genauigkeit erfordern. In der Leistung sind Dezimalzahlen jedoch langsamer als Double- und Float-Typen.

Dezimal kann 100% genau jede Zahl innerhalb der Genauigkeit des Dezimalformats darstellen, während Float und Double, nicht alle Zahlen genau wiedergeben können, gerade Zahlen, die innerhalb ihrer jeweiligen Formatpräzision sind.

Dezimal

Im Fall von Finanzanwendungen oder wissenschaftlichen Berechnungen ist es besser, Dezimaltypen zu verwenden, da es Ihnen ein hohes Maß an Genauigkeit bietet und Rundungsfehler leicht zu vermeiden ist

Doppelt

Doppeltypen sind wahrscheinlich der am häufigsten verwendete Datentyp für reale Werte, außer Geld zu handhaben.

Schweben

Es wird hauptsächlich in Grafikbibliotheken verwendet, da sehr hohe Anforderungen an die Verarbeitungsleistung gestellt werden, sowie Situationen, in denen Rundungsfehler auftreten können.




Die Variablentypen Dezimal, Double und Float unterscheiden sich in der Art, in der sie die Werte speichern. Präzision ist der Hauptunterschied, bei dem Float ein Gleitkomma-Datentyp mit einfacher Genauigkeit (32 Bit), Double ein Gleitkomma-Datentyp mit doppelter Genauigkeit (64 Bit) und Dezimalzahl ein 128-Bit Gleitkomma-Datentyp ist.

Float - 32 Bit (7 Ziffern)

Double - 64 Bit (15-16 Ziffern)

Dezimal - 128 Bit (28-29 signifikante Stellen)

Mehr über ... den Unterschied zwischen Dezimal, Float und Double






Links