Netto Brutto Rechner mit 2% Rabatt in Java ignoriert den Rabatt?


04.02.2021, 21:19

das ist Die KonsolenAusgabe

3 Antworten

Das

sabatt = netto * (2/100);

ist das Problem. Es gilt puntk vor strich, klammern gehen vor. Also zuerst 2/100. Da das aber in der schreibweise integer sind ist 2/100 = 0. Und damit ist der rabatt netto* 0 = 0.

Mach daraus

sabatt = netto * (2.0/100);

dann rechnet er da auch mit double und es sollte das korrekte rauskommen.

(das kleiner natürlich auch anpassen).

Woher ich das weiß:Studium / Ausbildung – Seit über 10 Jahren als Entwickler mit Java
anschließend überprüft ob der Nettobetrag über 100€
netto < 100

Das passt nicht zusammen

< ist kleiner

> ist größer


XxKrunkix 
Beitragsersteller
 04.02.2021, 20:46

habs ausversehen so geschrieben xD.

Bei Änderung des Größer/Kleinerzeichens und des Variablennamens in der Ausgabe am Ende funnktioniert es immernoch nicht. Das Programm berücksichtigt zwar die berechnung des Bruttobetrages aber den Rabatt will es immernoch nicht anerkennen xD

Sieh dir mal die letzte Zeile an, was du ausgibst.


XxKrunkix 
Beitragsersteller
 04.02.2021, 20:47

hab die Variable "bruttoende" erst später eingebunden und so vergessen sie in der Ausgabe unten auch abzuändern xD.

Bei Änderung des Größer/Kleinerzeichens und des Variablennamens in der Ausgabe am Ende funnktioniert es immernoch nicht. Das Programm berücksichtigt zwar die berechnung des Bruttobetrages aber den Rabatt will es immernoch nicht anerkennen xD

XxKrunkix 
Beitragsersteller
 04.02.2021, 20:51
@Xenortus

1000

aber er gibt dann am ende 840,3361... aus was nur der Bruttobetrag ohne Rabatt ist

Xenortus  04.02.2021, 20:54
@XxKrunkix

Genau, so wie das Programm dort steht, ist es korrekt.

Was kommt raus, wenn du das Größer Zeichen umdreshst?

XxKrunkix 
Beitragsersteller
 04.02.2021, 20:56
@Xenortus

wenn ich in if schreibe:

if (netto > 100) {...

dann wird der Rabatt genauso wenig berücksichtigt wie bei:

if (netto < 100) { ....

Xenortus  04.02.2021, 21:26
@XxKrunkix

Ok ich habs.

Gib bei sabatt ein

sabatt = netto * 0.02;

Dann geht's.

Xenortus  04.02.2021, 21:31
@XxKrunkix

Oder

sabatt = netto * (2.00/100.00);

Damit geht's auch, damit du mit double Werten rechnest.

XxKrunkix 
Beitragsersteller
 04.02.2021, 21:34
@Xenortus

hat funktioniert. Vielen Dank. Hat auch spaß gemacht das Problem zu suchen :D