Math.sqrt Problem?!



  • Hey,

    mal eine Frage:
    Warum kommt bei dem folgenden Ausdruck immer eine 0 als Ergebnis?!

    double wurzel = Math.Sqrt((1 / 4));
    

    Wird aber der folgende Ausdruck verwendet, dann funktioniert es einwandfrei.

    double wurzel = Math.Sqrt(0.25);
    

    Hat einer eine Idee woran das liegen koennte?



  • Weil zuerst die beiden Integerzahlen 1 und 4 dividiert werden und dann kommt als Ergebnis 0 (als Integer) raus und erst danach wird diese Zahl in eine Fließkommazahl (double) konvertiert.
    Abhilfe schafft:

    double wurzel = Math.Sqrt(1.0 / 4); // bzw. (1d / 4)
    

    1d steht dann für "eins double", für float gibt es dann f als Suffix (und dann noch m für decimal).



  • lol, ich depp 🙂 danke... wie konnte ich sowas uebersehen bzw. ueberdenken... *koepfschuettel*


Anmelden zum Antworten