我使用delphi时出现了下面的一个问题,不知道这个情况哥们儿们见过吗。是这样的我有两个double型的变量如下:
var
a1,a2,a3,a4:double;
begin
a1:=46.65;
a2:=45.6;
a3:=47.2;
a4:=46.15;
edit1.Text:=formatfloat('0.0',a1-a2); //应该为1.1,可结果为1.0,这是怎么了
edit2.Text:=formatfloat('0.0',a3-a4); //结果为1.1这是正确的
end;以上是一个测试程序段,是因为我的类型定有不对还是什么原因,我认为这样的情况出现在财务软件上非同小可,希望高人指点一下。谢谢了。

解决方案 »

  1.   

    你又发一贴
    别一个贴子已经回了
    用Extended型变量
      

  2.   

    你在舍入的时候,没有作四舍五入处理.edit1.Text:=formatfloat('0.0',a1-a2+0.05); //因为你是保留一位小数,所以加0.05
    edit2.Text:=formatfloat('0.0',a3-a4+0.05); //
      

  3.   

    Delphi的四舍五入和中国习惯是不同的,逢五时好像看上一位的单双决定是五入还是五舍.
      

  4.   

    这样就可以了。
    edit1.Text:=formatfloat('0.0',a1-a2); //保留一位小数
    edit2.Text:=formatfloat('0.0',a3-a4); //