Einzelnen Beitrag anzeigen

Bodenseematze

Registriert seit: 10. Jul 2023
68 Beiträge
 
#21

AW: System.Frac / System.Int / Math.SimpleRoundTo - komische Ergebnisse

  Alt 13. Jul 2023, 13:21
Frac(..) ist in System.pas deklariert:
Delphi-Quellcode:
function Frac(const X: Extended): Extended;
begin
  Result := X - Int(X);
end;
Bei mir nicht (direkt); da steht dann folgendes drin:
Delphi-Quellcode:
procedure _FRAC;
asm
        FLD ST(0)
        SUB ESP,4
        FNSTCW [ESP].Word // save
        FNSTCW [ESP+2].Word // scratch
        FWAIT
        OR [ESP+2].Word, $0F00 // trunc toward zero, full precision
        FLDCW [ESP+2].Word
        FRNDINT
        FWAIT
        FLDCW [ESP].Word
        ADD ESP,4
        FSUB
end;
wie der dann zu "Frac" (ohne Unterstrich am Anfang) kommt, weiß ich nicht...
  Mit Zitat antworten Zitat