如c (int)(0.6)就可以实现四舍五入了
delphi中的round(0.5)=0,要使它也为一,怎么编写?

解决方案 »

  1.   

    ShowMessage(Format('%8.0f',[0.5])) ;
      

  2.   

    保留1位小数round(num+0.5)
    保留2位小数round(num+0.05)
    保留3位小数round(num+0.005)
    .........
      

  3.   

    function Myround(x:Real):integer;
    var
       TR:Real;
    begin
       TR:=x-trunc(x);
       if TR<0.5 then
       begin
          result:=trunc(x);
       end
       else
       if TR=0.5 then
       begin
          Result:=trunc(x)+1;
       end
       else
       if TR>0.5 then
       begin
          Result:=round(x);
       end;end;
      

  4.   

    int 转换为real格式的可以直接用等号!
    如:
    var
       x:real;
       i:integer;
    begin
      i:=9;
      x:=i;
    end;
      

  5.   

    通用得算法
    i := Trunc(val + 0.5); // if val = 0.5 then i = 1
      

  6.   

    function change(val:real):integer;
     var i:integer;
     begin
     if (val<0) then  i:=Trunc(val-0.5 )
     else i:=Trunc(val+0.5 );
     change:=i; end;