Eine gute Antwort könnte sein:

Nein. Ganzzahlen und Gleitpunktzahlen verwenden unterschiedliche Bitmuster um Werte darzustellen.

Einen String in ein Double konvertieren

Das Schema, das verwendet wird um Ganzzahlen darzustellen, unterscheidet sich vollkommen von dem Schema, das verwendet wird um Gleitpunktzahlen darzustellen. Auch wenn 221 und 221.0 als äquivalent betrachtet werden könnten, sind die Bitmuster, die jedes von ihnen repräsentiert, völlig verschieden.

Gleitpunkt-Input unter Verwendung von java.io ist ähnlich wie Ganzzahl-Input. Bei Gleitpunkt-, wie bei Ganzzahlen, lesen Sie zuerst Character ein. Dann, wenn die Character korrekt aufbereitet sind, werden sie in einen numerischen Typ konvertiert.

Hier ist ein Programm, das einen String von Zeichen in den primitiven Typ double konvertiert. In diesem Programm sind die zu konvertierenden Zeichen in einem Stringliteral enthalten. (Später werden wir die Zeichen über die Tastatur einlesen.) Das Programm wird nicht unter früheren Versionen von Java als 1.2 laufen, da sie nicht über die parseDouble() Methode verfügen.

// Dieses Programm erfordert Java 1.2 oder höher
//
import java.io.*;
class StringZuDouble
{
  public static void main (String[] args)
  {
    final String charDaten = "3.14159265";
    double wert;

    wert  = Double.parseDouble( charDaten ) ;
    System.out.println( "Wert: " + wert + " zweimal Wert: " + 2 * wert );
  }
}

Das reservierte Wort final bedeutet, dass es nicht erlaubt ist den Wert in der Variablen charDaten zu ändern. Beim Ausführen des Programms wird folgendes auf den Bildschirm ausgegeben:

C:\temp>java StringZuDouble

Wert: 3.14159265 zweimal Wert: 6.2831853

Es wäre der Mühe wert dieses Programm in eine Datei zu kopieren, es zu kompilieren und auszuführen. Die Einzelheiten wie dieses Programm funktioniert sind auf der nächsten Seite.

FRAGE 2:

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

final String charDaten = 3.14159265;