语句:
procedure TForm1.FormCreate(Sender: TObject);
var
num:real;
begin
num:=8.1;
if num<8.1 then
form1.Caption :='fffff';
end;
运行后,form1的标题竟改为'fffff',8.1小于8.1么??
procedure TForm1.FormCreate(Sender: TObject);
var
num:real;
begin
num:=8.1;
if num<8.1 then
form1.Caption :='fffff';
end;
运行后,form1的标题竟改为'fffff',8.1小于8.1么??
在delphi中存的是8.09999998,就当然<8.1了
所以比较大小时可以这样比较,
if X<Y+ASmallConst
ASmallConst是个足够小的正常量,比如对时间日期类型进行比较,你可设它为一个小于千分之一秒的数。
也是像这样:
IF i<0.000~~~~~~~~~~~~~1 then
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
var
num:real;
begin
num:=8.1;
if num*10<81 then
form1.Caption :='fffff';
end;
有误差的用Math.pas的CompareValue能解决问题
看Delphi的Help