Frage von Dinerbone, 31

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

Antwort
von PWolff, 7

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.

Antwort
von androhecker, 9

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.

Expertenantwort
von KnusperPudding, Community-Experte für Java, 12

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.

Antwort
von triopasi, 17

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

Antwort
von Emanuel2003, 13

Versuche mal den Variabeln Typ von Eingabe zu einem Double zu machen weil du ja ihn MAL 0.19 (also einen Double) mavhst! Einen String kannst du NICHT multiplizieren!

Antwort
von Oubyi, 5

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.



Antwort
von kathachen, 12

Welcher Datentyp ist eingabe denn? Vermutlich double. Schreib also:

double eingabe = Eingabe.nextDouble();

Keine passende Antwort gefunden?

Fragen Sie die Community