Würde

final String CHARDATEN = 3.14159265;

funktionieren?

Eine gute Antwort wäre:

Nein. CHARDATEN ist ein Objekt vom Typ String und 3.14159265 (ohne Anführungszeichen) ist ein Literal vom primitiven Typ double. Diese Datentypen verwenden Bitmuster auf völlig verschiedene Weise. Eine einfache Anweisung, die den einen Typ dem anderen zuweist, funktioniert nicht.

Wie das Programm funktioniert

In dem Programm sind die Zeichen "3.14159265" in dem String CHARDATEN enthalten.

final String CHARDATEN = "3.14159265";
double zahl;

Betrachten Sie jetzt die Anweisung, die die Zeichen in einen double-Datentyp konvertiert und das Ergebnis in zahl hineinstellt:

zahl  = Double.parseDouble( CHARDATEN ) ;

Die Zuweisungsanweisung funktioniert in zwei Schritten:

  1. Der Ausdruck rechts vom Gleichheitszeichen wird ausgewertet.
    • Die parseDouble() Methode der Klasse Double betrachtet die Zeichen und erzeugt einen double-Wert.
  2. Der double-Wert wird in die Variable zahl kopiert.

Das wird üblicherweise Konvertieren von Character-Daten in Gleitpunkt-Daten mit doppelter Genauigkeit genannt. Aber die Character-Daten wurden nicht geändert. Ein Gleitpunkt-Wert wurde aus ihnen berechnet und der Wert wurde an eine andere Stelle kopiert.

FRAGE 3:

Würde das Programm funktionieren, wenn die Deklaration von CHARDATEN geändert werden würde in:

final String CHARDATEN = "0.314159265E+1";
Inhaltsverzeichnis