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 
Fragesteller
 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

0

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

XxKrunkix 
Fragesteller
 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

0
XxKrunkix 
Fragesteller
 04.02.2021, 20:51
@Xenortus

1000

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

0
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?

0
XxKrunkix 
Fragesteller
 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) { ....

0
Xenortus  04.02.2021, 21:26
@XxKrunkix

Ok ich habs.

Gib bei sabatt ein

sabatt = netto * 0.02;

Dann geht's.

0
Xenortus  04.02.2021, 21:31
@XxKrunkix

Oder

sabatt = netto * (2.00/100.00);

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

0
XxKrunkix 
Fragesteller
 04.02.2021, 21:34
@Xenortus

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

1