zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein. Ganzzahl- und Gleitpunkttypen verwenden verschiedene Bitmuster, um Werte darzustellen.

Ein double von der Tastatur einlesen

Das Schema , das verwendet wird, um Ganzzahlen darzustellen ist völlig anders, als das Schema, das verwendet wird, um Gleitpunktzahlen darzustellen. Auch wenn Sie 221 und 221.0 als äquivalent ansehen könnten, sind die Bitmuster, die sie verwenden, vollständig verschieden.

Scanner führt einen Gleitpunkt-Input auf eine ähnliche Weise durch, wie einen Ganzzahl-Input. Verwenden Sie ein Scanner-Objekt, um einen Input-Zeichenstrom zu scannen und die Zeichen in ein float oder ein double zu konvertieren. Die Methoden, die das tun, sind nextFloat() und nextDouble().

Hier ist ein Programm, das einen String von Input-Zeichen in den primitiven Typ double konvertiert und dann diesen Wert und das Doppelte dieses Werts ausgibt:

import java.util.Scanner;

class DoubleDouble
{
  public static void main (String[] args)
  {
    double zahl;
    Scanner scan = new Scanner( System.in );

    System.out.print("Geben Sie ein double ein: ");
    zahl = scan.nextDouble();

    System.out.println("zahl: " + zahl + " zahl * 2: " + 2.0*zahl );
  }
}

Das Programm gibt aus:

D:\daten\JavaNotes\kap11>java DoubleDouble
Geben Sie ein double ein: 3,14
zahl: 3.14 zahl * 2: 6.28

Hinweis:Ein Scanner-Objekt erkennt die eingestellte Sprache des Betriebssystem und erwartet das jeweils landestypische Dezimaltrennzeichen, wie hier ein Komma. Wird ein Dezimalpunkt eingegeben, wird das Programm mit einer Fehlermeldung beendet.

Es wäre Ihre Mühe wert dieses Programm in eine Datei zu kopieren, es zu kompilieren und auszuführen.

FRAGE 3:

Was glauben Sie passiert, wenn der Anwender eine Ganzzahl eingibt, wie 211?