G
Guest
Gast
Liebe Javaianer,
Ich bringe mir zur Zeit Programmieren und Java mit Bradley Kjells Java5 Tutorial bei, das ich übrigens jedem Programmieranfänger, der das programmieren mit Java lernen will sehr empfehlen kann.
Zu untenstehendem Programm habe ich zwei wahrscheinlich sehr einfache Fragen
1. Gibt es einen vernünftigen Grund für die Zeile "import java.io.*"? Denn das Kompilieren funktioniert auch ohne wunderbar.
2. Wenn das Programm ausgeführt wird, verlangt es ja die Eingabe eines Fließkommawertes. Anscheinend scheint sich der Scanner dabei an die Ländersettings des OS zu orientieren. Denn die Eingabe von 20,45 wird akzeptiert, während 20.45 zu einem Fehler führt.
Gibt es dahinter eine höhere Designlogik?
Wie könnte ich Java dazu bringen entweder die Ländersettings zu ignorieren oder die Fließkommazahlen mit Komma auszugeben?
Vielen Dank schon mal für's Lesen
Ich bringe mir zur Zeit Programmieren und Java mit Bradley Kjells Java5 Tutorial bei, das ich übrigens jedem Programmieranfänger, der das programmieren mit Java lernen will sehr empfehlen kann.
Zu untenstehendem Programm habe ich zwei wahrscheinlich sehr einfache Fragen
1. Gibt es einen vernünftigen Grund für die Zeile "import java.io.*"? Denn das Kompilieren funktioniert auch ohne wunderbar.
2. Wenn das Programm ausgeführt wird, verlangt es ja die Eingabe eines Fließkommawertes. Anscheinend scheint sich der Scanner dabei an die Ländersettings des OS zu orientieren. Denn die Eingabe von 20,45 wird akzeptiert, während 20.45 zu einem Fehler führt.
Die Ausgabe von Fließkommawerten erfolgt aber in der Englischen Notation mit Punkt vor den Dezimalstellen.Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at RestaurantBill.main(RestaurantBill.java:14)
Gibt es dahinter eine höhere Designlogik?
Wie könnte ich Java dazu bringen entweder die Ländersettings zu ignorieren oder die Fließkommazahlen mit Komma auszugeben?
Vielen Dank schon mal für's Lesen
Code:
import java.io.*;
import java.util.Scanner;
class RestaurantBill
{
public static void main (String[] args)
{
Scanner scan = new Scanner( System.in );
double basicCost;
double tipPercent;
System.out.print("Enter the basic cost: ");
basicCost = scan.nextDouble();
System.out.print("Enter the tip percentage: ");
tipPercent = scan.nextDouble();
System.out.println("basic cost: " + basicCost + " total cost: " +
(basicCost + basicCost*0.06 + basicCost*tipPercent) );
}
}