Das Problem ist, das 0.375 nicht exakt darstellbar ist. Mich wundert es zwar, das dies auf unterschiedlichen Systemen unterschiedlich gerundet (bzw. intern dargestellt) wird, aber ich habe Ähnliches vor Jahren erlebt.
(Ziemlich amateurhafte) Abhilfe:
Delphi-Quellcode:
Function RoundToDecimal (aValue, aGranularity : Double);
begin
result := (0.500000000001 + Trunc(aValue/aGranularity))*aGranularity;
end;
Getippt und nicht getestet.
Bei mir ging es um Cent-Beträge und da hatte mir das gereicht. Aufruf für 2 Nachkommastellen übrigens mit 'RoundToDecimal(value,0.01)'.