Дробное число хранится в двоичном виде. Поэтому если это не степень двойки (напр., 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;