float Rechnungen
-
Hallo zusammen.
Wenn man zum beispiel
//------------------------------
int i;
float f;
int=15/4; //ist ja klar das 3 rauskommt int schneidet einfach abf=15/4; //sollte eigentlich 3.740000 rauskommen wieso nicht?
//und wenn man
f=15/4.0;
//oder
f=15.0/4; //macht dann funktioniert es!
//------------------------------Wieso funktioniert 15/4 bei float nicht wieso schneidet er dort auch ab?
-
oooooops natürlich kommt
3,75 und nicht 3,74
-
f=15/4
rechnet mit int-Zahlen (dabei werden die Nachkommastellen abgeschnitten) und wandelt das Ergebnis anschließend in eine float-Zahl um.
(Anmerkung: Das passiert grundsätzlich bei allen Rechenarten - solange keine Gleitkommazahlen vorkommen, verwendet der Compiler Ganzzahl-Arithmetik)
-
boolean b = true == false || ~false == true && 2 == 2;
Und was macht die Tilde vor dem false? Das ist ja der Operator der am meisten binded also noch mehr als / * %
-
~ ist die bitweise Negation (der Wert wird als Binärzahl interprtiert und jede 1 in eine 0 umgewandelt (und umgekehrt)).