随笔 - 1, 文章 - 0, 评论 - 0, 阅读 - 158
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年7月 >
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

2011年7月20日

delphi的取整函数round、trunc、ceil和floor

1.Round(四舍六入五留双)

功能说明:对一个实数进行四舍五入。(按照银行家算法)

例:
var
    i, j: Integer;
begin
    i := Round(1.5); // i等于2
    j := Round(2.5); // j等于2
end;

Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双。即当舍或入位大于或小于五时按四舍五入来处理

,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。
例:            
i:= Round(11.5)//i等于12
i:= Round(10.5)//i等于10

这种Round其实是按照银行家算法,统计学上一般都用这种算法,比传统的"四舍五入"要科学。
如果要使用传统的"四舍五入"方法,可以使用下面函数:
function RoundClassic(R: Real)

2.trunc(取得X的整数部分)
如:trunc(-123.55)=-123, floor(123.55)=123

3.ceil(取得大于等于X的最小的整数)

如:ceil(-123.55)=-123, ceil(123.15)=124

4.floor(取得小于等于X的最大的整数)

如:floor(-123.55)=-124,floor(123.55)=123

注:floor和ceil是math unit里的函数,使用前要先Uses Math

posted @ 2011-07-20 14:31 stbaby 阅读(158) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示