一个字符串的值为'999950.64',而显示出来的只有'999950.63',开始还以为是用引用传递参数使用错误,经跟踪发现,是因为定义的一个变量用了不当的类型引起的,也是因为对Single和Extended没有好好认识他们的不同,
var
s:Single;
e:Extended;
begin
Edit1.Text:='0.64';
s:=StrToFloat(Edit1.Text);
e:=StrToFloat(Edit1.Text);
end;
这时s,和e的值是不一样的,s是值为0.6399999,e的值为0.64;而如果Edit1.Text:='999950.64';则s为999950.625,e为999950.64,因为Single的精底为7-8位,所在在存储'999950.64'时,只能存'999950.6'后面的是有误差的,所以要是要求精确的小数时,最好使用Extended.