Welcher Typ von Operator ist der Divisions-Operator "/" (Ganzzahl oder Gleitpunkt)?
(12 + 0.0) / 7
Gleitpunkt. Das Addieren der Gleitpunktzahl 0.0 zu der Ganzzahl 12 ergibt eine Gleitpunktzahl 12.0. Jetzt ist die Division eine Gleitpunkt-Operation, da einer der Operanden eine Gleitpunktzahl ist. Das ist ein gebräuchlicher Programmiertrick.
Betrachten Sie noch einmal die Regel:
Wenn beide Operanden Ganzzahlen sind, dann ist die Operation eine Ganzzahl-Operation. Wenn einer oder zwei der Operanden eine Gleitpunktzahl ist, dann ist die Operation eine Gleitpunkt-Operation.
Die Regel muss Schritt-für-Schritt angewendet werden. Betrachten Sie diesen Ausdruck:
( 1/2 + 3.5 ) / 2.0
Was ist das Ergebnis? Wenden Sie die Regeln an: die innersten Klammern zuerst, innerhalb der Klammern der Operator mit der höchsten Präzedenz zuerst:
( 1/2 + 3.5 ) / 2.0 --- mache zuerst
Da beide Operanden Ganzzahlen sind, ist die Operation eine Ganzzahl-Division und ergibt:
( 0 + 3.5 ) / 2.0
Fahren Sie jetzt fort den Ausdruck innerhalb der Klammern auszuwerten.
Der +
-Operator ist eine Gleitpunkt-Operation,
da einer der Operanden eine Gleitpunktzahl ist,
also ergibt der Klammerausdruck 3.5:
3.5 / 2.0
Schließlich führen Sie die letzte Operation durch:
1.75
Dies ist dicht am Ergebnis, dass Sie irrtümlich erwartet haben könnten, wenn Sie beide Divisionen als Gleitpunkt-Operation betrachtet hätten. Ein heimtückischer Bug könnte in Ihrem Programm lauern!