Teilen durch Gleitkommazahlen



  • Worin liegt der Unterschied zwischen

    double x = 1 / 100 ;

    und

    double x = 1 / 100.0 ;

    Ist die Punktschreibweise erforderlich? Produziert die 1. Variante Fehler?

    Danke.



  • Hast Du die beiden Varianten mal ausprobiert und die Ergebnisse verglichen?



  • Die zweite Variante hat offenbar mehr Nachkommastellen, aber mir ist nicht klar, warum.



  • Wenn alle beteiligten Werte Integerwerte sind, findet eine Integerdivision statt. Deine erste Variante sollte also als Ergebnis 0 haben.



  • Eine ist schon mehr als keine.

    Bei 1 / 100 sind nur Ganzzahlen (Integer) an der Berechnung beteiligt.
    Darum wird auch nur die Integerdivision gemacht. Und da gibt es keine Nachkommastellen.

    Bei 1 / 100.0 hast du zumindest eine Fließkommazahl. Darum wird die Berechnung auch als Fließkommedivision durchgeführt.

    ACHTUNG: Bei 100.0 * (1/100) wird die Berechnung in den Klammern als Integerdivision berechnet, da dieser Teilausdruck zuerst berechnet wird. Das Ergebnis ist dann 0.


Log in to reply