Was sind schwimmende numerische Typen in C#

Was sind schwimmende numerische Typen in C#

In der Programmierung bezieht sich der Begriff „Floating-Punkt“ auf eine Art numerische Daten, die zur Darstellung von Dezimalzahlen verwendet wird. Es gibt verschiedene Arten von Floating-Punkt-Daten, die Sie in C#verwenden können, jeweils eigene Eigenschaften und Funktionen.

In diesem Artikel werden wir uns genauer an den numerischen Floating-Punkt-Typen in C# ansehen.

Numerische Datentypen verstehen

Bevor wir den Floating-Punkt-Datentyp diskutieren, ist es wichtig, die verschiedenen Arten von numerischen Daten grundlegend zu verstehen, die in C# verfügbar sind. Zu den häufig verwendeten numerischen Daten gehören:

  • Ganze Zahl: Verwendet, um Zahlen darzustellen (e.G., 1, 2, 3 usw.).
  • Schwimmpunkt: Verwendet, um Dezimalzahlen darzustellen (e.G., 1.2, 3.14 usw.).
  • Dezimal: Wird verwendet, um Zahlen mit höherer Präzision als schwimmende Punktzahlen darzustellen (e.G., 3.14159265358979323846).

Wie wir wissen, wird der schwimmende Punkt verwendet, um die Dezimaldaten darin zu speichern. Der nächste Schritt besteht darin, alle verschiedenen Formen von Gleitpunktzahlen zu diskutieren.

Die Grundlagen der Gleitkomma-Daten

Schwimmpunktdaten werden verwendet, um Dezimalzahlen darzustellen, die nicht genau mit Ganzzahldaten dargestellt werden können. Zum Beispiel, wenn Sie die Nummer 1 darstellen möchten.5 Verwenden von Integer -Daten müssten Sie sie auf den nächsten Wert runden (entweder 1 oder 2) runden oder unten rund oder unten runden). Mit Floating-Punkt-Daten können Sie jedoch 1 darstellen.5 Genau.

Im Folgenden finden Sie die in C# verwendeten Gleitkomma-Typen, um Dezimalwerte mit unterschiedlichen Bereichen und Präzisionsniveaus darzustellen.

  • schweben: Es handelt sich um einen 32-Bit-Floating-Punkt-Datentyp
  • doppelt: Es handelt sich um einen 64-Bit-Floating-Punkt-Datentyp
  • Dezimal: Es handelt sich um einen 128-Bit-Floating-Punkt-Datentyp

In allen drei Floating-Punkt-Datentypen ist die Dezimalzahl von höherer Präzision.

Eigenschaften von Gleitkomma-Datentypen

Die numerischen Floating-Punkt-Typen in C# werden verwendet, um Zahlen mit einem fraktionalen Teil darzustellen. Die folgende Tabelle zeigt die Eigenschaften verschiedener Gleitkomma-Datentypen in C#:

Gleitkomma-Datentypen Bereich Präzision Größe
schweben ± 1.5 x 10-45 bis ± 3.4 x 1038 ~ 6-9 Ziffern 4 Bytes [32 Bit]
doppelt ± 5.0 × 10–324 bis ± 1.7 × 10308 ~ 15-17 Ziffern 8 Bytes [64 Bit]
Dezimal ± 1.0 x 10-28 bis ± 7.9228 x 1028 28-29 Ziffern 16 Bytes [128 Bit]

Standardmäßig hat jeder dieser drei schwimmenden Punkte Werte gleich Null. Jedes von diesen hat ein Minimum und einen maximalen Wert.

Verwenden von Floating-Punkt-Daten in C#

Um eine Float -Variable zu deklarieren, können Sie die folgende Syntax verwenden:

float myfloat = 3.14f;

Beachten Sie, dass Sie das Suffix F zum Wert hinzufügen müssen, um anzuzeigen, dass es sich um einen Schwimmer handelt.

Um eine doppelte Variable zu deklarieren, können Sie die folgende Syntax verwenden:

doppelt mydeuble = 3.14;

Standardmäßig werden Floating-Punkt-Literale in C# als doppelt behandelt. Wenn Sie ein Float -Border verwenden möchten, können Sie das Suffix F zum Wert hinzufügen.

Um die Dezimalliterale zu deklarieren, verwenden wir das Suffix M oder M:

Dezimaler mydecimal = 3.14m;

Verständnis der Präzisionsprobleme für Gleitkomma

Die Präzision der Schwimmpunktzahlen in C# ist durch die Anzahl der Bits begrenzt, die zur Darstellung der Anzahl verwendet werden. Beispielsweise verwendet eine Gleitkomma-Nummer (Float) 32 Bit, um die Zahl darzustellen, während eine Schwimmpunktzahl (doppelt) 64 Bit verwendet.

Eine Folge dieser begrenzten Präzision ist, dass nicht alle Dezimalwerte mit schwimmenden Punktzahlen genau dargestellt werden können. Zum Beispiel der Wert 0.1 kann nicht mit Gleitkomma-Zahlen deklariert werden. Dies kann zu unerwartetem Verhalten führen, wenn arithmetische Operationen durchgeführt werden.

Ein weiteres Problem ist, dass einige Operationen Rundungsfehler einführen können. Zum Beispiel kann das Hinzufügen von zwei sehr kleinen Zahlen zusammen zu einem Präzisionsverlust führen. In ähnlicher Weise kann das Subtrahieren von zwei sehr großen Zahlen auch zu einem Präzisionsverlust führen.

Betrachten Sie beispielsweise den folgenden Code:

double num1 = 0.1;
double num2 = 0.2;
Doppelergebnis = Num1 + Num2;

Sie könnten erwarten, dass der Wert des Ergebniss 0 beträgt.3, aber aufgrund der Art und Weise, wie Floating-Punkt-Daten gespeichert werden, ist der tatsächliche Wert des Ergebnisses gering.300000000000004). Ergebnisse wie diese können die Ausgabe ändern und ein unerwartes Verhalten im Programm verursachen. Daher ist es wichtig, sich dieser Präzisionsprobleme bewusst zu sein.

Um diese Probleme zu beheben, können die Dezimaldatentypen gegenüber Float und Double bevorzugt werden. Die Dezimalheit hat eine höhere Präzision als doppelt und ist besser, um Werte darzustellen, die ein hohes Maß an Genauigkeit erfordern.

Abschluss

Die Gleitkomma-Datentypen können Zahlen mit unterschiedlicher Genauigkeit speichern. Die drei Haupttypen umfassen Float, Double und Decimal. Unter allen hat die Dezimalzahl die höchste Präzision. Mit diesen Gleitkomma-Typen in C#kann man leicht Dezimalzahlen darstellen. Lesen Sie den Artikel für eine detaillierte Beschreibung der drei Typen.