Jahreszins

baker333

Bekanntes Mitglied
Hallo liebe Community,
ich habe ein simples Verständnisproblem, der Code hier ist fehlerhaft:

long betragincent = 2342352;
int prozentsatz = 3;
long jahreszinsInCent = prozensatz / 100 * betragInCent;

Das Problem ist ja, dass es sich bei prozentsatz / 100 um eine ganzzahlige Division handelt, die zum Wert 0 evaluiert wird.
Warum lässt sich dies durch:
long jahreszinsInCent = betragInCent * prozensatz / 100;

vermeiden?
Schließlich umfässt long auch nur ganzzahlige Zahlen und prozensatz / 100 wird doch immernoch zu 0 evaluiert?
 

baker333

Bekanntes Mitglied
Das ist ja mein Gedankenfehler: es wird von rechts nach links gerechnet, aber prozentsatz/ 100 bleibt für mich 0, egal in welcher Reihenfolge.
 

mihe7

Top Contributor
@baker333

prozensatz / 100 * betragInCent;
1. Schritt: prozensatz / 100 = 0, weil prozensatz < 100 (wo ist eigentlich das t hin?)
2. Schritt: 0 * betragInCent = 0

betragInCent * prozensatz / 100;
1. Schritt: betragInCent * prozensatz = x
2. Schritt: x / 100 > 0, falls x >= 100, 0 sonst (EDIT: für alle x >= 0)
 

Neue Themen


Oben