//返回整数的四种情况
const
  a = 1.8;
  b = -1.8;
begin
  {返回比值大的最小整数:}
  ShowMessage(IntToStr(Ceil(1.8)) + ',' + IntToStr(Ceil(-1.8)));    {返回:2,-1}

  {返回比值小的最大整数:}
  ShowMessage(IntToStr(Floor(1.8)) + ',' + IntToStr(Floor(-1.8)));  {返回:1,-2}

  {删除小数部分:}
  ShowMessage(IntToStr(Trunc(1.8)) + ',' + IntToStr(Trunc(-1.8)));  {返回:1,-1}

  {Round}
  ShowMessage(IntToStr(Round(1.8)) + ',' + IntToStr(Round(-1.8)));  {返回:2,-2}
end;

{经我反复测试, 按性能排个序: Round、Trunc、Floor、Ceil; 应该多用 Round, 它的速度是 Trunc 的一倍以上}


//四舍五入函数: System.Math.SimpleRoundTo
uses System.Math;

procedure TForm1.FormCreate(Sender: TObject);
var
  f, f1,f2: Double;
begin
  f := 2.5555555;
  f1 := SimpleRoundTo(f);     //2.56
  f2 := SimpleRoundTo(f, -3); //2.556
  ShowMessageFmt('%g, %g, %g', [f, f1, f2]);
end;

posted on 2007-12-28 13:04  万一  阅读(3884)  评论(4编辑  收藏  举报