Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mod mit extendet (https://www.delphipraxis.net/43915-mod-mit-extendet.html)

Nepos 10. Apr 2005 15:53


mod mit extendet
 
ist es möglich den befehl mod mit einer extendet variable zu benutzen?

z.b:

Code:
e:=e mod 2;
ebi mir sagt er dann immer:

operator ist auf diesen operandentyp nicht anwendbar

Dax 10. Apr 2005 15:55

Re: mod mit extendet
 
Delphi-Quellcode:
function FloatMod(left, right: Extended): Extended;
begin
  Result := Frac(left / right) * right;
end;

Nepos 10. Apr 2005 16:09

Re: mod mit extendet
 
Kannst du mir ein bsp geben zu aufrufen?

vielen dank

Nepos

Khabarakh 10. Apr 2005 16:12

Re: mod mit extendet
 
Das dürfte doch eigentlich selbsterklärend sein.
Delphi-Quellcode:
 i := FloatMod(4.2, 2); // i = 0.2

Nepos 10. Apr 2005 16:39

Re: mod mit extendet
 
hallo nochmal...

ich habe jetzt meine anweisungen:

Delphi-Quellcode:
    chipher:= power(i,e);
    chipher:= FloatMod(chipher,n);
nur jetzt werden die zahlen ungenau:

der taschenrechner zeigt ganze zahlen an. die sind auch erwartet.
doch delphi spuckt etwas abweichende zahlen aus:

3,99999993597 - 4 (4 und 80 sind die erwarteten werte)
80,0000001601 - 80

kann mir jemand sagen woher das kommt oder was ich dagegen tuen kann??

vielen dank im voraus

Nepos

malo 10. Apr 2005 17:42

Re: mod mit extendet
 
Dein Taschenrechner rundet wohl. Schau dir mal Delphi-Referenz durchsuchenround an ;)

BenBE 10. Apr 2005 22:50

Re: mod mit extendet
 
Für die Begrenzung von Winkeln im Gradmaß, kann man folgendes nehmen:

Delphi-Quellcode:
Function LimitAngleDeg2(Var Angle: Extended): Extended;
Asm
    FILD   WORD PTR [@@Value360]
    FLD    TBYTE PTR [Angle]
    FPREM
    FSTP   ST(1)

    JMP    @@Ret
@@Value360:
    DW     360
@@Ret:
End;
Die FILD-Anweisung durch
Delphi-Quellcode:
    FLD    TBYTE PTR [ObereSchranke]
ersetzen für andere Grenzen, wenn Obere Grenze ein Parameter ist.

bigg 10. Apr 2005 23:30

Re: mod mit extendet
 
Die Modulo Divison mit Fließkomma-Werten hatten wir bereits schon einmal:
http://www.delphipraxis.net/internal...t=mod+extended


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz