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

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)?

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 stefanram722629 stefan_ram:722629 Java Nachkommastellen Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722629, slrprddef722629, 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_java