Tach die Herren,
ich habe eine Frage zu Return in Functions.
Ich habe in einem Gerät seltsame Werte beobachtet und frage mich ob beides hier identisch ausgeführt wird:
("G_Average" ist eine Function die Werte zwischen 0 und 4096 als Float zurückgibt, A/D Wandler Daten.)
Function FuncA : Float;
var f : Float;
begin
f:= (G_AVERAGE-2048)/12.8;
Return(f);
end;
Function FuncB : Float;
begin
Return((G_AVERAGE-2048)/12.8);
end;
Ich habe eine Vermutung das letztere Variante Probleme mit der Berechnung hat, zumindest habe ich da für bestimmte hohe Rückgabewerte von G_AVERAGE eine große Veränderung des Rückgabewertes der Funktion in Verdacht, leider nur anhand von weiter verarbeiteten gespeicherten Messdaten zu vermuten.
Kann es sein dass in FuncB der Wert nicht als Float berechnet wird und daher ein Überlauf passieren kann?
Vielleicht hat jemand einen Tipp.
ich habe eine Frage zu Return in Functions.
Ich habe in einem Gerät seltsame Werte beobachtet und frage mich ob beides hier identisch ausgeführt wird:
("G_Average" ist eine Function die Werte zwischen 0 und 4096 als Float zurückgibt, A/D Wandler Daten.)
Code
Function FuncA : Float;
var f : Float;
begin
f:= (G_AVERAGE-2048)/12.8;
Return(f);
end;
Function FuncB : Float;
begin
Return((G_AVERAGE-2048)/12.8);
end;
Ich habe eine Vermutung das letztere Variante Probleme mit der Berechnung hat, zumindest habe ich da für bestimmte hohe Rückgabewerte von G_AVERAGE eine große Veränderung des Rückgabewertes der Funktion in Verdacht, leider nur anhand von weiter verarbeiteten gespeicherten Messdaten zu vermuten.
Kann es sein dass in FuncB der Wert nicht als Float berechnet wird und daher ein Überlauf passieren kann?
Vielleicht hat jemand einen Tipp.