请问以下代码中,为什么将temp类型改为double或real就会出错?
procedure TForm1.Button1Click(Sender: TObject);
var
  StrlstTemp:TStringList;
  txtline:string;
  temp:single;
begin
  StrlstTemp:=TStringList.Create;
  txtline:='abcdefghijklm';
  temp:=1.23456789012;
  StrlstTemp.AddObject(txtline,TObject(temp));
  form1.Caption:=strlsttemp[0];
end;