Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - function liefert Fehlermeldung


Lokke - Di 03.05.05 10:56
Titel: function liefert Fehlermeldung
Hi @all,

ich habe eine Funktion, die mir mein Ist-Offset berechnen soll:

z.B.
Offsetist := (100-75)/2 + 75 = 87,5


Delphi-Quelltext
1:
2:
3:
4:
function TSpgRegeln.IstOffsetberechnung(Maximum, Minimum, x : Integer) : Integer;
begin
  result := abs((Maximum - Minimum) / 2 + x);
end;


Der Wert x ist eigentlich wieder mein Minimum Wert. Nun bekomme ich aber die Fehlermeldung


Delphi-Quelltext
1:
[Fehler] SprRegeln.pas(85): Inkompatible Typen: 'Integer' und 'Extended'                    


Wo mach ich den bitte ein Fehler???

Thanks for HELP


Moderiert von user profile iconKlabautermann: Topic aus VCL (Visual Component Library) verschoben am Di 03.05.2005 um 11:55


Heiko - Di 03.05.05 11:00

Der Code müsste so aussehen:


Delphi-Quelltext
1:
2:
3:
4:
function TSpgRegeln.IstOffsetberechnung(Maximum, Minimum, x : Integer) : Integer;  
begin  
  result := abs(round((Maximum - Minimum) / 2 + x));  
end;


oder so:


Delphi-Quelltext
1:
2:
3:
4:
function TSpgRegeln.IstOffsetberechnung(Maximum, Minimum, x : Integer) : Integer;  
begin  
  result := abs((Maximum - Minimum) div 2 + x);
end;


Was round und div ist, dürfte klar sein. abs will in seiner Klammer einen Integerwert haben und keinen Real-Wert der durch / entsteht, da / auch Real zurückgibt.


NeoInDerMATRIX - Di 03.05.05 11:01

Hi,

probiers mal so?

Delphi-Quelltext
1:
2:
3:
4:
function TSpgRegeln.IstOffsetberechnung(Maximum, Minimum, x : Integer) : Integer;  
begin  
  result := abs((Maximum - Minimum) div 2 + x);  
end;

Oder übergebe Extendet Werte. Den mit "/" werden soweit ich mich erinnere nur Floats berechnet! Für integer mus man "div" benutzen.

Cu
Neo


Lokke - Di 03.05.05 11:08

Hi,

stimmt ja, hab ich vergessen, mein blödheit :autsch:

Danke


NeoInDerMATRIX - Di 03.05.05 11:11

Mist war ich doch langsamer!

Cu
Neo