Java Anfänger frage, Hilfe?
Hey,
ich lerne gerade Java und möchte ein Programm schreiben, dass die Mehrwertsteuer von einem eingegeben Betrag abzieht.
Habe das hier bereits entworfen:
import java.util.Scanner;
public class Mehrwertsteuer{
public static void main(String[] args){
String eingabe;
Scanner Eingabe = new Scanner (System.in);
System.out.println("Geben Sie einen Betrag ein, von dem die Mehrwertsteuer abgezogen werden soll: ");
eingabe = Eingabe.next();
System.out.println();
System.out.println("Die Mehrwertsteuer von " + eingabe + "Euro ist " + eingabe*0,19 + " Euro");
}
}
Allerdings weiß ich jetzt nicht, wie ich das mache, dass die Eingabe *0,19 genommen wird.
Kann mir da ein etwas erfahrener Java Programmierer weiter helfen?
Danke im Voraus für alle antworten
7 Antworten
Dieser Code hat mehrere Probleme
1. Mit Strings kann man nicht rechnen
Deine Eingabe kommt in Form eines Strings, den kann man natürlich nicht multiplizieren. Entweder liest du den Wert mit einer Parse Funktion wie Double.parseDouble() oder du benutzt gleich die nextDouble() Methode des Scanners. Falls die Eingabe kein Double Wert ist, wird bei der ersten Methode eine NumberFormatException geworfen, bei der Zweiten eine InputMismatchException.
2. Variablenbennenung
Ein Variablenname vorne groß zu schreiben ist ein No-Go, genauso sollte man nicht zwei mal den fast gleichen Name benutzen.
3. Dezimalzahlen immer mit Punkt
Das Komma findet andere Verwendungen, bei Dezimalzahlen benutzt man einen Punkt und kein Komma.
Bitte vorab:
String eingabe;
Scanner Eingabe
Bitte: Variablen-Namen immer klein schreiben. Und erst recht nicht doppelt.
Nun zu deinem Problem:
Deine Benutzereingabe ist ein String-Wert, entsprechend solltest du aus diesem Stringwert einen double wert machen, mit dem du dann auch rechnen kannst. (Siehe: DecimalFormat / Double.parseDouble ).
dies speicherst du in einer neuen Double-Variable, die du dann zur Berechnung verwenden kannst.
Anschließend kannst du diesen Double Wert normal ausgeben lassen.
Mal abgesehen von dem Problemen mit dem String als Eingabe usw., die Dir hier schon erklärt wurden, solltest Du die mathematischen Grundlagen beherrschen.
Um die Mehrwertsteuer vom Eingabe-Betrag abzuziehen (wie in Deinem Text beschrieben) lautet die Rechnung:
Eingabe/ 1,19
um sie auszuweisen (wie im Text Deiner println):
Eingabe /1,19*0,19
Oder liege ich da jetzt falsch?
Meine letzte Mathestunde ist schon -zig Jahre her.
Habt ihr überhaupt schon mal einfache Ein- und Ausgaben sowie ganz einfache Rechenoperationen durchgeführt, um erst mal irgendwas in Java ans Laufen zu kriegen?
Wenn nicht, halte ich das "Abziehen" der Mehrwertsteuer für verfrüht.
Wenn ja, wiederhol noch mal Eingabe von Zahlenwerten und Multiplikation von Gleitkommaausdrücken.
Was das "Abziehen" der Mehrwertsteuer betrifft - hier hilft nur auswendig gelernte Prozentrechnung oder/und algebraisches Verständnis von dem, was beim "Hinzuzählen" der Mehrwertsteuer wirklich passiert.
Als erstes solltest du dir mal "naming conventions" ansehen. (Variablennamen klein usw).
Zweitens ist das Problem, dass "eingabe" ein int ist, 0.19 aber nicht (bachte: . statt , !). Du musst als "eingabe" als double casten:
(double) eingabe * 0.19