Kann mir jemand bei dieser Java Anfänger Aufgabe helfen?
Hallo,
ich habe eine Aufgabe bekommen, wo ich die Oberfläche und das Volumen eines Würfels berechnen lassen soll per Tastatureingabe. Dies habe ich auch geschafft.
Jedoch habe ich als Zusatz folgende Aufgabe: "Geben Sie mal die Kantenlänge 1,7 ein. Ist das Ergebnis korrekt? Wo liegt das Problem?"
Wenn ich nun 1,7 eingebe, scheint mir kein Problem aufzufallen oder habe ich einen Fehler in meinem Code?
Wäre lieb, wenn jemand mal drüber schauen könnte.
Code:
/* Wuerfel.java */
import java.util.Scanner;
public class Wuerfel
{
public static void main(String[] args)
{
Scanner read = new Scanner(System.in);
float a; //Kantenlänge
float oberflaeche;
float volumen;
System.out.println("Geben Sie eine Kantenlänge in cm ein: ");
a = read.nextFloat();
oberflaeche = 6 * (a * a);
System.out.println("Oberfläche: " + oberflaeche + " cm²");
volumen = a * a * a;
System.out.println("Volumen: " + volumen + " cm³");
}
}
Screenshot dazu
2 Antworten
Auf Anhieb fällt mir auch kein Fehler auf. Ich vermute, dass die meisten nicht von Anfang an float verwenden und sie daher auch keine Dezimalzahlen eingeben können. Das hast du aber schon getan und deshalb kommt es auch bei dir nicht wie vielleicht bei den anderen zu einem Fehler.
scheint mir kein Problem aufzufallen
Wundert dich nicht, dass die Eingabe „1,7“ die Ausgabe „17.34“ erzeugt? Der Scanner verwendet deine persönliche Locale-Einstellungen, aber Float.toString() nimmt immer einen Dezimalpunkt.
oder habe ich einen Fehler in meinem Code?
Die verschiedenen Locales können verwirren. Du solltest
- entweder den Scanner auf "C-Locale" setzen:
read.useLocale(Locale.ROOT)
- oder die Werte locale-spezifisch ausgeben:
System.out.printf("Oberfläche: %.3f cm²", oberflaeche);
Hallo, danke für die Antwort :) Ich bin davon ausgegangen, dass in Java das Komma immer als Punkt ausgegeben wird. Sprich, man verwendet bei der Eingabe zwar das Komma, jedoch wird dieses immer als Punkt ausgegeben. Wenn ich z.B. 0,9 in meinen Code schreiben will, dann schreibe ich dies doch auch als 0.9 oder nicht?