Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#5

AW: Noch'n Bug in Tokyo Community Edition?

  Alt 20. Jul 2018, 17:09
[QUOTE=Uwe Raabe;1408125]
Das wird auch nicht explizit gemacht, sondern entsteht durch die Multiplikation zweier sehr kleiner Zahlen. Man kann das im Debugger nachvollziehen.
Ich würde hier dem Debugger nicht unbedingt trauen, was wird denn für x nach x := PDouble(@twopm1030)^ angezeigt?

Interessanterweise gibt es bei FPC-64 noch eine zusätzliche Variante: x*x wird richtig berechnet, aber x := ldexp(1,-1030) crasht mit EOverflow: Floating point overflow

Edit:
Da scheint noch mehr faul zu sein. Und vermutlich liegt das Problem in ldexp. Ich habe jetzt den Debugger angeworfen und x ist korrekt angezeigt nach der Konstantenzuweisung. Allerdings hat er mit auch x:=ldexp(1,-510) als 0 angezeigt und das wird durch writeln bestätigt.

Die 32-Bit-Version zeigt richtig an 9.32292591400026E-0156.

Geändert von gammatester (20. Jul 2018 um 17:21 Uhr)
  Mit Zitat antworten Zitat