ja, bei mir auch wenn ich es so teste.
Die 24.1 werden aus mehreren Werten zusammen addiert und genau das führ zu diesem Seiteneffekt.
Es hängt damit zusammen wie Float Werte verarbeitet werden.
Code:
var a,b,c:extended;
begin
inherited;
a := 8.0;
b := 8.4;
c := a + b + 7.7;
ShowMessage(Trunc(c * 10).ToString);
[Edit] ich könnte für meinen Fall anstelle von extended auch real verwenden. Dann würde zumindest dieser Fall funktionieren aber es muss doch eine zuverlässige Lösung dafür geben oder?
[Edit2]
Code:
var a,b,c,d,e:extended;
i:integer;
begin
inherited;
a := 8.0;
b := 8.4;
c := 7.7;
d := a + b + c;
e := d * 10.0; // hier ist der Wert immer noch richtig e=241.
i := Trunc(e); //Trunc schneidet nicht ab sondern Rundet oder konvertiert.
ShowMessage(i.ToString);