Forum: Object-Pascal / Delphi-Language
by himitsu,
15. Mär 2024
Floats sind immer etwas gerundet, da sie keine exakten irrationalen Werte speichern können,
vor allem beim Übergang von Extended/Double/Single in Zwischenberechnungen.
Die genaue Funktion wirst du wohl beim FLDCW oder Set8087CW finden, bzw. beim LDMXCSR/SetMXCSR für SSE (SetSSERoundMode).
Und zusätzlich noch SetPrecisionMode (ebenfalls FLDCW/Set8087CW)
...
Forum: Object-Pascal / Delphi-Language
by himitsu,
15. Mär 2024
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.