Einführung in Nachkommastellen in C# im Rahmen der Lehre des Programmierens mit der Programmiersprache C# (C# Nachkommastellen C#), Lektion, Seite 723196
https://www.purl.org/stefan_ram/pub/nachkommastellen_csharp (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C#-Kurs

Nachkommastellen in C♯ 

Nachkommastellen werden nicht etwa durch ein Komma, sondern durch einen Punkt  abgetrennt.

Numeralia mit dem Wert Zwölf
12
12.0
12.00
Numeralia mit verschiedenen Werten
12.45
12.9876432
1.2
87.0
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 12.00 ); }}
global::System.Console.Out
12

Eine Folge von Nullen, die ganz am Ende eines Numerales mit einem Punkt steht, trägt nicht zu seinem Wert bei.

Die Zahl Zwölf kann daher sowohl als »12.00« als auch als »12.0« geschrieben werden.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 12.00 ); }}
global::System.Console.Out
12
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 12.0 ); }}
global::System.Console.Out
12

Eine Null vor dem Punkt darf auch ganz weggelassen werden, wenn später noch Ziffern folgen.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( .12 ); }}
Protokoll
0.12

Der Text »12.00« kann mit einem Zeichenfolgenliteral ausgegeben werden.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( "12.00" ); }}
global::System.Console.Out
12.00

Wir können nun auch zwischen ganzzahligen Numeralia  (wie »32767« oder »22«) ohne  Punkt und Punktnumeralia  (wie »12.0 oder »12.00«) mit  einem Punkt unterscheiden.

Bei der Ausgabe eines Wertes mit Nachkommastellen wird dieser manchmal auf ein bestimmte Anzahl von Stellen abgeschnitten. Dies liegt daran, daß der Computer auch nur eine bestimmte Anzahl von Stellen verarbeiten und speichern kann.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 3.141592653589793 ); }}
global::System.Console.Out
3.14159265358979

Morphologie

morphologisches Diagramm

Ziffernfolge
.---------------.
|-|--->| Dezimalziffer |---.------------------------.--->|-|
'---------------' ^ |
| .---------------. |
'----| Dezimalziffer |---'
'---------------'

Punktnumerale

.--------------. .-. .--------------.
|-|---.--->| Ziffernfolge |---.--->( . )--->| Ziffernfolge |--->|-|
| '--------------' ^ '-' '--------------'
| |
'-----------------------'

Semantik

Wert

Der Wert eines Punktnumerales ist zunächst der Wert, den solche ein Numerale auch im Alltag hat, nachdem der Punkt durch ein Komma ersetzt wurde und eine Null ergänzt wurde, um zu verhindern, daß das Numerale direkt mit dem Komma beginnt oder endet. Beispielsweise ist der Wert des Punktnumerales ».2« gleich 0,2. Allerdings gilt dies nur näherungsweise, da nicht alle Werte mit Nachkommastellen genau dargestellt werden können. Die Abweichungen vom richtigen Wert sind aber meist so klein, daß sie nicht weiter stören.

Numerale und Wert

Numerale Wert

1.0 1,0
1.00 1,0
12.2 12,2

Werte und ihre Darstellung

Der Ausdruckrahmen gibt Darstellungen von Werten, nicht die Werte selber  aus.

Wir sprechen von der „Ausgabe einer Darstellung des Wertes »7« “, weil Werte im allgemeinen keine ausdruckbaren Zeichenfolgen sind. Eine ausgedruckte Zeichenfolge, wie »7«, ist also nicht ein Wert selber, sondern nur eine Darstellung  des Wertes durch eine Text. Beispielsweise kann der Wert »12.0« auch also »12.00« dargestellt werden, beides sind zwei verschiedene Darstellungen  desselben Wertes. Lesen oder Schreiben kann man nur Darstellungen von Werten, nicht die Werte selber.

Die Darstellung der Zeichenfolge des Zeichenfolgenliterals »"7"« gleicht der Darstellung der Zahl »7«, obwohl intern beides verschiedene Werte sind.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( "7" ); }}
global::System.Console.Out
7
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 7 ); }}
global::System.Console.Out
7

Zur Vereinfachung kann man aber auch von der „Ausgabe eines Wertes “ sprechen, wenn man weiß, daß dabei nicht wirklich  der Wert selber, sondern nur eine Darstellung des Wertes ausgegeben wird.

Literale

Ein Oberbegriff für ganzzahlige Numeralia und Punktnumeralia ist „Numerale“ (numerisches Literal).

Ein Oberbegriff für Numeralia und Zeichenfolgenliterale ist „Literal“.

Ein Literal dient der Angabe eines Wertes.

Literale (morphologisches Diagramm)

Literal

.----------------------.
|-|--->.--->| Zeichenfolgenliteral |---.--->|-|
| '----------------------' ^
| .----------------------. |
'--->| Numerale |---'
| '----------------------' ^
| .----------------------. |
'--->| Punktnumerale |---'
'----------------------'

Literale (Baumdiagramm)
                                               Literal
^
|
.------------------'------------------.
| |
Numerale Zeichenfolgenliteral
^ z.B.: "abc"
|
.------------------'------------------.
| |
ganzzahliges Numerale Punktnumerale
z.B.: 123 z.B.: 1.23

Übungsfragen

?   Übungsfrage

Ist der Wert des Numerales »22.0« gleich dem Wert des Numerales »22.00«?

?   Übungsfrage

Ist das Numerale »22.0« gleich dem Numerale »22.00«?

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723196 stefan_ram:723196 C# Nachkommastellen C# Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723196, slrprddef723196, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/nachkommastellen_csharp