Evtl. kennt Delphi7 die Funktionen RightStr/LeftStr noch nicht?
Wenn ja und da mathematisch scheinbar nicht lösbar, wegen der Abweichung durch Präzisions-Beschränkung...
...ein anderer Ansatz, der auch wie in Unions Vorschlag auf Manipulation der Ergebnisstrings basiert:
Delphi-Quellcode:
function FloatToStrEx(Value: Double; MaxDecimal: Byte): String;
var
i : Integer;
begin
if MaxDecimal = 0 then
Result := FloatToStr(Trunc(Value))
else
begin
Result := FloatToStr(Value);
i := Pos(DecimalSeparator, Result);
if i > 0 then
Result := Copy(Result, 1, i + MaxDecimal);
end;
end;
€: DecimalSeparator statt dt. Komma... ist aber wohl in ganz neuen Delphi-Versionen auch schon wieder veraltet?
€2: Sonderfall abgefangen