![]() |
mod mit extendet
ist es möglich den befehl mod mit einer extendet variable zu benutzen?
z.b:
Code:
ebi mir sagt er dann immer:
e:=e mod 2;
operator ist auf diesen operandentyp nicht anwendbar |
Re: mod mit extendet
Delphi-Quellcode:
function FloatMod(left, right: Extended): Extended;
begin Result := Frac(left / right) * right; end; |
Re: mod mit extendet
Kannst du mir ein bsp geben zu aufrufen?
vielen dank Nepos |
Re: mod mit extendet
Das dürfte doch eigentlich selbsterklärend sein.
Delphi-Quellcode:
i := FloatMod(4.2, 2); // i = 0.2
|
Re: mod mit extendet
hallo nochmal...
ich habe jetzt meine anweisungen:
Delphi-Quellcode:
nur jetzt werden die zahlen ungenau:
chipher:= power(i,e);
chipher:= FloatMod(chipher,n); 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 |
Re: mod mit extendet
Dein Taschenrechner rundet wohl. Schau dir mal
![]() |
Re: mod mit extendet
Für die Begrenzung von Winkeln im Gradmaß, kann man folgendes nehmen:
Delphi-Quellcode:
Die FILD-Anweisung durch
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;
Delphi-Quellcode:
ersetzen für andere Grenzen, wenn Obere Grenze ein Parameter ist.
FLD TBYTE PTR [ObereSchranke]
|
Re: mod mit extendet
Die Modulo Divison mit Fließkomma-Werten hatten wir bereits schon einmal:
![]() |
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