Hallo zusammen,
falls mir jemand für folgendes eine Erklärung geben kann, würde ich mich freuen:
Im angehängten Screenshot (die wichtigen Zeilen habe ich euch rot eingekreist) berechne ich frac auf zwei verschiedene Arten und Weisen:
Entweder direkt aus halfX.getDuration() (-> Wert landet in "frac2"), oder mit einem klitzekleinen Umweg über die Variablen val1 und val2 (-> Wert landet in "frac").
Die Frage ist ganz einfach: Wieso ist das Ergebnis unterschiedlich (siehe Debugger oben)?
getDuration() liefert einen long-Wert (Dauer in Milliseconds) zurück, bei dem habe ich auch überprüft, dass da wirklich 148 bzw. 216 Tage drinstehen. So oder so: M.E. sind die beiden Codestücke semantisch identisch...
Dass unterschiedliche Auswertungsreihenfolgen bei double/float nicht zu identischen Ergebnissen führen, ist mir natürlich auch klar - aber das ist ja gerade der Punkt: Hier gibt es ja eben keine unterschiedliche Auswertungsreihenfolge...
Das einzige, was ich mir noch denken könnte, wäre, dass der Debugger mir Müll ausgibt, das wäre dann aber jetzt auch das erste Mal.
Kennt jemand des Rätsels Lösung? Ist ein recht altes eclipse, vielleicht ist auch das noch eine mögliche Fehlerquelle...
(Bevor irgendwelche Kommentare über grottenschlechten Code-Style kommen: Ja, ich weiß . Er sieht so schlimm aus, weil ich gerade ziemlich rumgehacked habe, um dieses "lustige" Problem einzukreisen.)
falls mir jemand für folgendes eine Erklärung geben kann, würde ich mich freuen:
Im angehängten Screenshot (die wichtigen Zeilen habe ich euch rot eingekreist) berechne ich frac auf zwei verschiedene Arten und Weisen:
Entweder direkt aus halfX.getDuration() (-> Wert landet in "frac2"), oder mit einem klitzekleinen Umweg über die Variablen val1 und val2 (-> Wert landet in "frac").
Die Frage ist ganz einfach: Wieso ist das Ergebnis unterschiedlich (siehe Debugger oben)?
getDuration() liefert einen long-Wert (Dauer in Milliseconds) zurück, bei dem habe ich auch überprüft, dass da wirklich 148 bzw. 216 Tage drinstehen. So oder so: M.E. sind die beiden Codestücke semantisch identisch...
Dass unterschiedliche Auswertungsreihenfolgen bei double/float nicht zu identischen Ergebnissen führen, ist mir natürlich auch klar - aber das ist ja gerade der Punkt: Hier gibt es ja eben keine unterschiedliche Auswertungsreihenfolge...
Das einzige, was ich mir noch denken könnte, wäre, dass der Debugger mir Müll ausgibt, das wäre dann aber jetzt auch das erste Mal.
Kennt jemand des Rätsels Lösung? Ist ein recht altes eclipse, vielleicht ist auch das noch eine mögliche Fehlerquelle...
(Bevor irgendwelche Kommentare über grottenschlechten Code-Style kommen: Ja, ich weiß . Er sieht so schlimm aus, weil ich gerade ziemlich rumgehacked habe, um dieses "lustige" Problem einzukreisen.)