Übung - Entdecken von Gleitkomma-Typen
- 8 Minuten
In dieser Übung arbeiten Sie mit Gleitkomma-Datentypen, um mehr über die differenzierten Unterschiede zwischen den einzelnen Datentypen zu erfahren.
Ein Gleitkomma ist ein einfacher Werttyp, der Zahlen rechts neben der Dezimalstelle darstellt. Im Gegensatz zu integralen Zahlen gibt es andere Überlegungen, die über die Maximal- und Mindestwerte hinausgehen, die Sie in einem bestimmten Gleitkommatyp speichern können.
Gleitkommatypen auswerten
Zunächst müssen Sie die Ziffern der Genauigkeit berücksichtigen, die jeder Typ zulässt. Bei der Genauigkeit handelt es sich um die Anzahl der Werte, die nach der Dezimalstelle gespeichert werden.
Zweitens müssen Sie die Art und Weise berücksichtigen, in der die Werte gespeichert werden, und die Auswirkungen auf die Genauigkeit des Werts. Beispielsweise werden float- und double-Werte intern im Binärformat (Basis 2) gespeichert, während decimal im Dezimalformat (Basis 10) gespeichert ist. Warum ist dies wichtig?
Rechnungen mit binären Gleitkommazahlen können Ergebnisse liefern, die Sie möglicherweise überraschen, wenn Sie an das Dezimalsystem (Basis 10) gewöhnt sind. Häufig ist binäre Gleitkommaarithmetik eine Annäherung des realen Werts. Daher sind float und double nützlich, weil große Zahlen mit einem geringen Speicherbedarf gespeichert werden können. Es sollten jedoch float und double nur verwendet werden, wenn eine Annäherung nützlich ist. Beispielsweise ist es genau genug, bei der Berechnung des Aufpralls eines Schneeballs in einem Videospiel in den Tausenderdezimalstellen eine Abweichung zu haben.
Wenn Sie eine genauere Antwort benötigen, sollten Sie verwenden decimal. Jeder Wert des Typs decimal weist einen relativ großen Speicherbedarf auf. Durch die Ausführung mathematischer Vorgänge erhalten Sie jedoch ein genaueres Ergebnis. Daher sollten Sie bei der Arbeit mit Finanzdaten oder in jedem Szenario verwenden decimal , in dem Sie ein genaues Ergebnis aus einer Berechnung benötigen.
Verwenden der MinValue- und MaxValue-Eigenschaften für jeden signierten Float-Typ
Löschen oder verwenden Sie den Operator für Zeilenkommentare
//, um den gesamten Code aus den vorherigen Übungen auszukommentieren.Um die Wertebereiche für die verschiedenen Datentypen anzuzeigen, aktualisieren Sie den Code im Visual Studio Code-Editor wie folgt:
Console.WriteLine("");
Console.WriteLine("Floating point types:");
Console.WriteLine($"float : {float.MinValue} to {float.MaxValue} (with ~6-9 digits of precision)");
Console.WriteLine($"double : {double.MinValue} to {double.MaxValue} (with ~15-17 digits of precision)");
Console.WriteLine($"decimal: {decimal.MinValue} to {decimal.MaxValue} (with 28-29 digits of precision)");
Wählen Sie im Visual Studio Code-Menü Datei die Option Speichern aus.
Die Program.cs Datei muss vor dem Erstellen oder Ausführen des Codes gespeichert werden.
Klicken Sie im Panel „Explorer“ mit der rechten Maustaste auf TestProject, und klicken Sie dann auf In integriertem Terminal öffnen, um ein Terminal am Speicherort des TestProject-Ordners zu öffnen.
Ein Terminalbereich sollte geöffnet werden und sollte eine Eingabeaufforderung enthalten, die anzeigt, dass das Terminal für den Ordner "TestProject" geöffnet ist.
Um Ihren Code auszuführen, geben Sie an der Terminal-Eingabeaufforderung dotnet run ein und drücken Sie dann die Eingabetaste.
Wenn die Meldung "Es konnte kein auszuführendes Projekt gefunden werden" angezeigt wird, stellen Sie sicher, dass an der Terminal-Eingabeaufforderung der erwartete Speicherort des TestProject-Ordners angezeigt wird. Beispiel:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Die folgende Ausgabe sollte angezeigt werden:
Floating point types: float : -3.402823E+38 to 3.402823E+38 (with ~6-9 digits of precision) double : -1.79769313486232E+308 to 1.79769313486232E+308 (with ~15-17 digits of precision) decimal: -79228162514264337593543950335 to 79228162514264337593543950335 (with 28-29 digits of precision)
Wie Sie sehen können, verwenden float und double eine andere Notation als decimal, um die größten und kleinsten möglichen Werte darzustellen. Aber was bedeutet diese Notation?
Entschlüsseln großer Gleitkommazahlen
Da Gleitkommatypen große Zahlen mit Genauigkeit enthalten können, können ihre Werte mit der „Exponentialnotation“ (E-Notation) dargestellt werden, einer Form der wissenschaftlichen Notation, die „mal 10 hoch x“ bedeutet. Ein Wert wie 5E+2 wäre also der Wert 500, da er 5 * 10^2 oder 5 x 102entspricht.
Zusammenfassung
- Ein Gleitkommatyp ist ein einfacher Wertdatentyp, der Bruchzahlen enthalten kann.
- Wenn Sie den richtigen Gleitkommatyp für Ihre Anwendung auswählen, müssen Sie mehr als nur die maximal und minimalen Werte berücksichtigen, die sie enthalten kann. Sie müssen auch berücksichtigen, wie viele Werte nach dem Dezimaltrennzeichen beibehalten werden können, wie die Zahlen gespeichert werden und wie sich der interne Speicher auf das Ergebnis mathematischer Vorgänge auswirkt.
- Gleitkommawerte können manchmal mit der „Exponentialnotation“ (E-Notation) dargestellt werden, wenn die Zahlen besonders groß werden.
- Es gibt einen grundlegenden Unterschied bei der Behandlung des Compilers und der Laufzeit
decimalim Gegensatz zufloatoderdouble, insbesondere bei der Bestimmung, wie viel Genauigkeit aus mathematischen Vorgängen erforderlich ist.
Überprüfen Sie Ihr Wissen
Feedback
War diese Seite hilfreich?
No
Benötigen Sie Hilfe zu diesem Thema?
Möchten Sie versuchen, Ask Learn zu verwenden, um Sie durch dieses Thema zu klären oder zu leiten?