edit1=1.555,edit2:=2;
EDIT3:=1.56! 没有错!
你的程序怎么了?

解决方案 »

  1.   

    因为程序出现错误而导致。试试:
    edit1:=1.555,edit2:=23-->运行出错!继续,THRN 出现你所说的错误!
    加一个保护
    TRY
    ……
    EXCEPT
    ……
      

  2.   

    非常感谢z_x_b(长弓落日金沙丘)的帮忙(和广告^_^)。也许这是delphi版本的问题吧,我和你的情况不一样,程序在我这里一开始就出错。不过这不是偶然事件,在大富翁上也有人提出类似的问题(FormatStr时的情况)。发现函数修改如下后可解决这问题(其中的eTemp还一定要是Real型,换成Extended仍旧出错)。由于该函数本只想在程序中调用,故没有考虑任何的异常情况(偷懒得借口)。看来古语说得对“害人之心不可有,防人之心不可无”,就是大公司的程序已有Bug(不过这好像不是小问题,如果银行系统用的是Delphi的话……),帮助不能尽信哦。function DataSwitch(fData:Extended; iDecLen:integer):Extended;
    var
      e: Extended;
      eTemp: Real;
    begin
      e:= IntPower(10, iDecLen);
      eTemp:= fData*e;
      Result := Round(eTemp)/e;
    end;
    哪位高人能告诉我这是为什么(具体的理由)吗?