Eine gute Antwort wäre:

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 zahl;

    zahl  = Double.parseDouble( CHARDATEN ) ;
    System.out.println( "Zahl: " + zahl + " Zahl mal zwei: " + 2 * zahl );
  }
}

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

Zahl: 3.14159265 Zahl mal zwei: 6.2831853

Es würde sich lohnen dieses Programm 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;
Inhaltsverzeichnis