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 🙄


Anmelden zum Antworten