Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie mehr über die numerischen Typen in C#. Sie schreiben kleine Codemengen, kompilieren und führen diesen Code aus. Das Lernprogramm enthält eine Reihe von Lektionen, die Zahlen und mathematische Vorgänge in C# erkunden. Diese Lektionen vermitteln Ihnen die Grundlagen der C#-Sprache.
Tipp
Wenn ein Codeausschnittblock die Schaltfläche "Ausführen" enthält, öffnet diese Schaltfläche das interaktive Fenster oder ersetzt den vorhandenen Code im interaktiven Fenster. Wenn der Codeausschnitt keine Schaltfläche "Ausführen" enthält, können Sie den Code kopieren und dem aktuellen interaktiven Fenster hinzufügen.
Erkunde Ganzzahlenmathematik
Führen Sie den folgenden Code im interaktiven Fenster aus.
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
Im vorherigen Code werden grundlegende mathematische Operationen mit ganzen Zahlen veranschaulicht. Der int
Typ stellt eine ganze Zahl, eine positive oder negative ganze Zahl dar. Sie verwenden das +
Symbol zum Hinzufügen. Weitere allgemeine mathematische Operationen für ganze Zahlen sind:
-
zur Subtraktion*
für Multiplikation/
zur Division
Beginnen Sie damit, diese verschiedenen Vorgänge zu untersuchen. Ändern Sie die dritte Zeile, um jede dieser Vorgänge zu testen. Wenn Sie z. B. die Subtraktion ausprobieren möchten, ersetzen Sie das +
durch ein -
wie in der folgenden Zeile gezeigt:
int c = a - b;
Versuch es. Wählen Sie die Schaltfläche "Ausführen" aus. Versuchen Sie dann die Multiplikation *
und die Division /
. Sie können auch experimentieren, indem Sie mehrere Mathematikvorgänge in derselben Zeile schreiben, wenn Sie möchten.
Tipp
Während Sie C# (oder jede Programmiersprache) erkunden, machen Sie Beim Schreiben von Code Fehler. Der Compiler findet diese Fehler und meldet sie Ihnen. Wenn die Ausgabe Fehlermeldungen enthält, schauen Sie sich den Beispielcode und den Code im interaktiven Fenster genau an, um zu sehen, was behoben werden soll. Diese Übung hilft Ihnen, die Struktur von C#-Code zu erlernen.
Erkunden der Reihenfolge der Operationen
Die C#-Sprache definiert die Rangfolge verschiedener Mathematikvorgänge mit Regeln, die mit den Regeln übereinstimmen, die Sie in Mathematik gelernt haben. Multiplikation und Division haben Vorrang vor Addition und Subtraktion. Erkunden Sie dies, indem Sie den folgenden Code im interaktiven Fenster ausführen:
int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);
Die Ausgabe zeigt, dass die Multiplikation vor dem Hinzufügen ausgeführt wird.
Sie können eine andere Reihenfolge des Vorgangs erzwingen, indem Sie Klammern um den Vorgang oder die Vorgänge hinzufügen, die Sie zuerst ausführen möchten. Fügen Sie dem interaktiven Fenster die folgenden Zeilen hinzu:
d = (a + b) * c;
Console.WriteLine(d);
Erkunden Sie mehr, indem Sie viele verschiedene Vorgänge kombinieren. Ersetzen Sie die vierte Zeile im vorherigen Code durch folgendes:
d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);
Möglicherweise bemerken Sie ein interessantes Verhalten für ganze Zahlen. Ganzzahlige Division erzeugt immer ein ganzzahliges Ergebnis, auch wenn Sie erwarten, dass das Ergebnis einen Dezimal- oder Bruchteil enthält.
Probieren Sie den folgenden Code aus:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
Erkunden der Genauigkeit und Grenzwerte ganzer Zahlen
In diesem letzten Beispiel wurde gezeigt, dass die ganzzahlige Division das Ergebnis verkürzt. Sie erhalten den Restwert mithilfe des remainder-Operators, dem %
-Zeichen:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");
Der C#-Ganzzahltyp unterscheidet sich von mathematischen ganzzahligen Zahlen auf eine andere Weise: Der int
Typ hat mindeste und maximale Grenzwerte. Probieren Sie den folgenden Code aus, um diese Grenzwerte anzuzeigen:
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");
Wenn eine Berechnung einen Wert erzeugt, der diese Grenzwerte überschreitet, haben Sie eine Unterlauf - oder Überlaufbedingung . Die Antwort scheint sich von einem Limit zum anderen zu erstrecken. Um ein Beispiel anzuzeigen, fügen Sie diese beiden Zeilen im interaktiven Fenster hinzu:
int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");
Beachten Sie, dass die Antwort sehr nahe an der minimalen (negativen) ganzzahligen Zahl liegt. Es ist identisch mit min + 2
. Der Additionsvorgang überläuft die zulässigen Werte für ganze Zahlen. Die Antwort enthält eine große negative Zahl, da ein Überlauf den größtmöglichen ganzzahligen Wert bis zum kleinstmöglichen Wert umschließt.
Es gibt andere numerische Typen mit unterschiedlichen Grenzwerten und Genauigkeiten, die Sie verwenden würden, wenn der int
Typ nicht Ihren Anforderungen entspricht. Sehen wir uns diese Arten von Zahlen als Nächstes an.
Arbeiten mit dem Double-Typ
Der double
numerische Typ stellt eine Gleitkommazahl mit doppelter Genauigkeit dar. Diese Begriffe sind möglicherweise neu für Sie. Eine Gleitkommazahl ist nützlich, um nichtintegrale Zahlen darzustellen, die groß oder klein sein können. Doppelte Genauigkeit ist ein relativer Begriff, der die Anzahl der binären Ziffern beschreibt, die zum Speichern des Werts verwendet werden. Doppelgenauigkeitszahlen haben doppelt so viele Binärziffern wie Zahlen mit Einfachgenauigkeit. Auf modernen Computern ist es häufiger, doppelte Genauigkeit als einzelne Genauigkeitszahlen zu verwenden. Einfache Genauigkeitsnummern werden mithilfe des float
Schlüsselworts deklariert. Lassen Sie uns erkunden. Führen Sie den folgenden Code aus, und sehen Sie sich das Ergebnis an:
double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);
Beachten Sie, dass die Antwort den Dezimalteil des Quotienten enthält. Testen Sie einen etwas komplizierteren Ausdruck mit Werten vom Typ „double“. Sie können die folgenden Werte verwenden oder andere Zahlen ersetzen:
double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);
Der Bereich eines doppelten Werts ist größer als ganze Zahlen. Probieren Sie den folgenden Code im interaktiven Fenster aus:
double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");
Diese Werte werden in der wissenschaftlichen Schreibweise gedruckt. Die Zahl vor dem E
-Signifikand. Die Zahl nach dem E
ist der Exponent, dargestellt als Potenz von 10.
Genau wie dezimale Zahlen in mathematik können Doppel in C# Rundungsfehler aufweisen. Probieren Sie diesen Code aus:
double third = 1.0 / 3.0;
Console.WriteLine(third);
Sie wissen, dass das 0.3
ist 3/10
und nicht genau dasselbe wie 1/3
. Ebenso ist 0.33
33/100
. Dieser Wert ist näher an 1/3
, aber immer noch nicht genau. Unabhängig davon, wie viele Dezimalstellen Sie hinzufügen, bleibt ein Rundungsfehler bestehen.
Herausforderung
Probieren Sie andere Berechnungen mit großen Zahlen, kleinen Zahlen, Multiplikationen und Divisionen mithilfe des double
Typs aus. Versuchen Sie es mit komplizierteren Berechnungen.
Arbeiten mit Dezimaltypen
Es gibt einen weiteren Typ, den Sie kennen sollten: den decimal
-Typ. Der decimal
Typ hat einen kleineren Bereich, aber eine größere Genauigkeit als double
. Sehen wir uns folgendes an:
decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");
Beachten Sie, dass der Bereich kleiner als der double
Typ ist. Sie können die größere Genauigkeit mit dem Dezimaltyp sehen, indem Sie den folgenden Code ausprobieren:
double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);
decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);
Beachten Sie, dass die Mathematik, die den Dezimaltyp verwendet, mehr Ziffern rechts neben dem Dezimalkomma aufweist.
Das M
Suffix für die Zahlen ist, wie Sie angeben, dass eine Konstante den decimal
Typ verwenden soll. Andernfalls geht der Compiler vom Typ aus double
.
Hinweis
Der Buchstabe M
wurde als visuell unterschiedlichster Buchstabe zwischen den double
Schlüsselwörtern decimal
ausgewählt.
Herausforderung
Schreiben Sie Code, der den Bereich eines Kreises berechnet, dessen Radius 2,50 Zentimeter beträgt. Denken Sie daran, dass der Bereich eines Kreises der mit PI multiplizierte Radius ist. Ein Hinweis: .NET enthält eine Konstante für PI, Math.PI die Sie für diesen Wert verwenden können. Math.PI, wie alle im System.Math
Namespace deklarierten Konstanten, ist ein double
Wert. Aus diesem Grund sollten Sie anstelle von double
Werten für diese Herausforderung verwendendecimal
.
Sie sollten eine Antwort zwischen 19 und 20 erhalten.
Nachdem Sie es versucht haben, öffnen Sie den Detailbereich, um zu sehen, wie Sie vorgehen:
Probieren Sie einige andere Formeln aus, wenn Sie möchten.
Sie haben das interaktive Lernprogramm "Zahlen in C#" abgeschlossen. Sie können den Link "Tupel und Typen " auswählen, um das nächste interaktive Lernprogramm zu starten, oder Sie können die .NET-Website besuchen, um das .NET SDK herunterzuladen, ein Projekt auf Ihrem Computer zu erstellen und die Codierung beizubehalten. Im Abschnitt "Nächste Schritte" werden Sie zu diesen Tutorials geführt.
Weitere Informationen zu Zahlen in C# finden Sie in den folgenden Artikeln: