Nachkommastellen in Java
Nachkommastellen werden nicht etwa durch ein Komma, sondern durch einen Punkt abgetrennt. Die Zahl ‹ 12,23 › wird in Java also als »12.23« geschrieben.
Ein Numerale mit einem Punkt nennen wir ein Punktnumerale. Im Gegensatz dazu bezeichnen wir die bisher behandelte Numeralia, die keine Punkte enthalten, als Ganzzahlnumeralia. Das Wort Numerale verwenden wir nun als Oberbegriff zu Punktnumerale und Ganzzahlnumerale.
- Numeralia mit dem Wert Zwölf
12
12.0
12.00- Numeralia mit verschiedenen Werten
12.45
12.9876432
1.2
87.0
Folgende Nullen
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 12.00 ); }}java.lang.System.out
12.0
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. Beide Numeralia haben denselben Wert.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 12.00 ); }}java.lang.System.out
12.0
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 12.0 ); }}java.lang.System.out
12.0
Nullen am Ende dürfen auch ganz weggelassen werden, so daß für die Zahl Zwölf auch die Schreibweise »12.« erlaubt ist.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 12. ); }}java.lang.System.out
12.0
Zum Vergleich: Wenn das Numerale gar keinen Punkt enthält, dann wird auch kein Punkt ausgegeben.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 12 ); }}java.lang.System.out
12
Falls die Ausgabe folgender Nullen gewünscht wird, so kann ein Zeichenfolgenliteral verwendet werden.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( "12.00" ); }}java.lang.System.out
12.00
Führende Nullen
Eine Null vor dem Punkt darf auch ganz weggelassen werden, wenn später noch Ziffern folgen.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( .12 ); }}java.lang.System.out
0.12
Es ist aber nicht erlaubt, alle Ziffern vor und nach dem Punkt wegzulassen.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( . ); }}transcript
Main.java:4: error: illegal start of expression
( . ); }}
^
Bei Punktnumeralia sind auch führende Nullen erlaubt, es ist aber trotzdem nicht ratsam, diese zu verwenden, da sie unnötig sind.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 0014.12 ); }}Protokoll
14.12
Untergliederung
Es folgt noch ein Beispiel für die übersichtliche Untergliederung von Punktnumeralia mit Grundstrichen.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 3.141_5926_535_89_79_3_238_462_643_383_27950_288_41_971_693_993_7510 ); }}transcript
3.141592653589793
Aufbau
- Aufbaudiagramm
Dezimalziffer
.-.
|-|---.--->( 0 )---.--->|-|
| '-' ^
| .-. |
'--->( 1 )---'
| '-' ^
| .-. |
'--->( 2 )---'
| '-' ^
| .-. |
'--->( 3 )---'
| '-' ^
| .-. |
'--->( 4 )---'
| '-' ^
| .-. |
'--->( 5 )---'
| '-' ^
| .-. |
'--->( 6 )---'
| '-' ^
| .-. |
'--->( 7 )---'
| '-' ^
| .-. |
'--->( 8 )---'
| '-' ^
| .-. |
'--->( 9 )---'
'-'Ziffernfolge
.---------------.
|-|--->| Dezimalziffer |---.-----------------------------------------.--->|-|
'---------------' ^ |
| .---------------. |
'---| Dezimalziffer |<---.------------.---'
'---------------' | ^
| .-. |
'--->( _ )---'
'-'Punktnumerale
.-. .--------------.
|-|--->.----------------------->( . )------->| Ziffernfolge |-------.--->|-|
| '-' '--------------' ^
| .--------------. .-. |
'--->| Ziffernfolge |--->( . )---.-----------------------.---'
'--------------' '-' | ^
| .--------------. |
'--->| Ziffernfolge |---'
'--------------'
Semantik
Der Wert eines Punktnumerales ist zunächst der Wert, den solche ein Numerale auch im Alltag hat, nachdem alle enthaltenen Grundstriche entfernt, der Punkt durch ein Komma ersetzt 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 »1_2.2« gleich ‹ 12,2 › und der Wert des Punktnumerales ».1« ist ‹ 0,1 ›. 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. 1,0
1.0 1,0
1.00 1,0
1_2.2 12,2
Literale
Ein Oberbegriff für Numeralia und Zeichenfolgenliterale ist „Literal“.
Ein Literal dient der Angabe eines Wertes.
- Literale (Aufbaudiagramm)
Literal
.----------------------.
|-|--->.--->| Zeichenfolgenliteral |---.--->|-|
| '----------------------' ^
| .----------------------. |
'--->| Ganzzahlnumerale |---'
| '----------------------' ^
| .----------------------. |
'--->| Punktnumerale |---'
'----------------------'- Literale (Baumdiagramm)
Ausdruck
^
|
Literal
^
|
.------------------'------------------.
| |
' '
Numerale Zeichenfolgenliteral
^ z.B.: "abc"
|
.-----------'-----------.
| |
' '
Ganzzahlnumerale 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« (als Numerale selbst, also als Teil des Quelltextes betrachtet)?