Дробное число хранится в двоичном виде. Поэтому если это не степень двойки (напр., 0,25 = 1/4 = (2)^-2), то при преобразовании к десятичному виду всегда будет куча разрядов (нули или девятки и в конце что-нибудь), как ни округляй перед этим. Округление имеет смысл, если есть преобразование в строку (для вывода), например:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
x: Single;
begin
x:= StrToFloatDef(Edit1.Text, 0);
Edit1.Text:= Format('%.4f', [x]);
end;