对实数进行“四舍五入”的函数!,要求其中一个参数是四舍五入的位数,可精确到指定位数
如,精确到0.01 1234.45655 四舍五入后 为:1234.46

解决方案 »

  1.   

    function RoundEx(X: Extended; Fix: Extended): Extended;
    begin
      Result := Round(X / Fix) * Fix;
    end;
    这个行不?
      

  2.   

    formatfloat('#.##..',value),有多少位就放多少个##啦,不过他好象是只进位的,不管后面一位是多少,都进一
      

  3.   

    function RoundEx(X: Extended;Fix:integer): Extended;
      //X:被精确的数。Fix:精确的位数。 
      begin
        Result:=StrToFloat(Format('%.'+IntToStr(Fix)+'f',[X]));
      end;
    例如:要把2.345变成1.35
    RoundEx(2.345,2) //结果为2.34
      

  4.   

    function RoundEx(X: Extended;Fix:integer): Extended;
      //X:被精确的数。Fix:精确的位数。 
      begin
        Result:=StrToFloat(Format('%.'+IntToStr(Fix)+'f',[X]));
      end;
    例如:要把2.345变成2.35
    RoundEx(2.345,2) //结果为2.34
      

  5.   

    delphi有自带的函数RoundTo,该函数的原型如下:
    RoundTo函数
    type TRoundToRange=-37..37;
    Function RoundTo(const AValue:Double;const ADigit:TRoundToRange):Double;
    解释为:
    该函数利用银行业舍入法将浮点数四舍五入为指定的阿拉伯数字或10的幂数。AValue参数为待转换的值。ADigit指定要将AValue值四舍五入成的10的幂数,可以是-37到37之间的任何值。
    该函数的行为可能受Set8087CW过程或SetRoundMode函数的影响。
    加分吧!呵呵