000
10.11.2004, 16:17 Uhr
~PhoemueX
Gast
|
Also ich habe folgendes Problem, das ich als Frage formulieren möchte:
Gibt es laut ANSI-Standard einen Unterschied (in der Auswertung) von einem Wert als zusammengesetzter Ausdruck und dem gleichen Wert als Wert einer Variablen?
Beantwortet diese Frage mal im Geiste und schaut euch DANN den folgenden Quelltext an:
C++: |
#include <iostream> using namespace std; int main (void) { double a = 0.6; double b = a*20.0; if((12.0) == (a*20.0)) { cout << 12 << " = "<< a*20.0 << endl; } else { cout << 12 << " != "<< a*20.0 << endl; } if(12.0 == b) { cout << 12 << " = "<< b << endl; } else { cout << 12 << " != "<< b << endl; } cin.get(); }
|
Ausgabe (kompiliert mit DEV-CPP): 12 != 12 12 = 12
Kann mir mal jemand erklären, wodurch dieser Unterschied entsteht??
Ich meine, a*20.0 und b sind doch GENAU der gleiche Wert (gut, dass erste ist kein L-Wert), aber trotzdem werden sie verschieden ausgewertet.
Danke schonmal
Phoemuex |