Rechnen mit double ?
-
Hallo,
ich habe hier so ein kleines Problem ! Hier mal kurz mein Code:
double Zahl =0; int Anzahl = 0; Anzahl = 123; Zahl = 100 / Anzahl;
Warum ist bitte schön Zahl 0 ? Sollte da nicht was mit 0,81 drin sein ?
Danke Coolsero
-
Hallo
Versuch es mal so:
double Zahl=0; int Anzal=0; Zahl = 100.0 / static_cast<double>(Anzahl);
Ist aber ungetestet.
chrische
-
Coolsero schrieb:
Hallo,
ich habe hier so ein kleines Problem ! Hier mal kurz mein Code:
double Zahl =0; int Anzahl = 0; Anzahl = 123; Zahl = 100 / Anzahl;
Warum ist bitte schön Zahl 0 ? Sollte da nicht was mit 0,81 drin sein ?
Danke Coolsero
Du bekommst hier die Zahl 0 aus dem Grund, dass dein Ergebnis zu einem Integer konvertiert wird, da du in deiner Berechnung einen Integerwert nutzt.
-
Es wird nicht konvertiert, aber ansonsten ist die Aussage richtig: Wenn du zwei int-Werte miteinander verrechnest, wird Integer-Arithmetik verwendet. Um Gleitkomma-Rechnung zu nutzen, muß mindestens ein Gleitkomma-Wert beteiligt sein:
//Möglichkeit 1: Zahl = 100.0 / Anzahl; //Möglichkeit 2: Zahl = 100 / (double) Anzahl;
-
CStoll schrieb:
Es wird nicht konvertiert, aber ansonsten ist die Aussage richtig: Wenn du zwei int-Werte miteinander verrechnest, wird Integer-Arithmetik verwendet. Um Gleitkomma-Rechnung zu nutzen, muß mindestens ein Gleitkomma-Wert beteiligt sein
Stimmt, sorum war das