if StrToFloat(fk_edit.Text)+StrToFloat(yh_edit.Text)>StrToFloat(DBEdit2.Text ) then
begin
  error_tishi('金额大于期收款金额!');
  Result:=false;
  Exit ;
end;
在下面这种情况下,就会出现'金额大于期收款金额!'的提示.
fk_edit.Text:=100
yh_edit.Text:=50.4
DBEdit2.Text:150.4但是如果小数点只要不是.4,就不会出现'金额大于期收款金额!'的提示.
这种问题该如何处理呢?

解决方案 »

  1.   

    浮点型的存储与普通数值存储不一样,不能用>,<,=等来直接比较,可以通过比较差值在很小的个范围内,来确定两个浮点数的大小
      

  2.   

    一般浮点数是这么比较的  const   e=0.000001;   
        
      if   (abs(f1-f2)<e)   
      then   
      ...   
      else   
      ...   
    或者你猥琐一点
    if   (StrToFloat(EdtCash.Text)   +0.001)   <   G_FactCash   then这类方法