Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: SetRoundMode wirkt nicht immer

  Alt 15. Mär 2024, 18:54
Die Delphi-"Funktionen", arbeiten fast alle mit der FPU und dieser Modus wird in der FPU eingestellt (ich glaub nur für den aktuellen Thread).
Und Jupp, ganzzahlig (Integer) wird in der CPU berechnet, nicht in der FPU, also in den normalen Registern ala EAX anstatt ST0.

Somit hat ein Umstellen, innerhalb des Hauptthreads, auch Einfluß auf alles Mögliche, wie z.B. FireMonkey.
Roundmode ist threadsafe. Deine Vermutung trifft da zu.
Die Einstellung des Mode wirkt sich auf die FPU aus, wenn ich die DOH richtig verstanden habe. Allerdings bin ich davon ausgegangen, dass sich das nur auswirkt, wenn Rundungsfunktion aufgerufen werden. Das Verhalten, das ich festgestellt habe, würde bedeuten, dass es sich auf jede Rechenoperation in der FPU auswirkt.

Das wäre für mich jetzt nachvollziehbar, aber da könnte der Hinweis in der Hilfe deutlicher sein, dass von der Einstellung nicht nur die Rundungsfunktionen in Delphi betroffen sind.
Peter
  Mit Zitat antworten Zitat