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

首先引入math单元

uses math;

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

delphi的取整函数round、trunc、ceil和floor,布布扣,bubuko.com

时间: 2024-08-05 11:14:32

delphi的取整函数round、trunc、ceil和floor的相关文章

Delphi中取整函数Round的Bug解决

Delphi中 Round函数有个Bug一旦参数是形如 XXX.5这样的数时如果 XXX 是奇数 那么就会 Round up如果 XXX 是偶数 那么就会 Round down例如 Round(17.5)=18但是 Round(12.5)=12下面的函数即可纠正这个 Bug 但是是临时性的执行 DoRound(12.5) 结果为 13 正确 [delphi] view plain copy function DoRound(Value: Extended): Int64; procedure S

delphi 四舍五入取整函数

一.四舍五入法    四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种.    所谓算术舍入法,就是我们通常意义上的四舍五入法.其规则是:当舍去位的数值大于等于5时,在舍去该位的同时向前位进一:当舍去位的数值小于5时,则直接舍去该位.    所谓银行家舍入法,其实质是一种四舍六入五留双(又称四舍六入五奇偶)法.其规则是:当舍去位的数值小于5时,直接舍去该位:当舍去位的数值大于等于6 时,在舍去该位的同时向前位进一:当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的

Math类中round、ceil和floor方法的功能

Java中的Math工具类用来完成除+.-.*./.%等基本运算以外的复杂运算,位于java.lang包下,Math类的构造器全是私有的(private),因此无法创建Math类的对象,Math类的方法全是类方法,可以直接通过类名来调用它们.下面重点介绍Math类中经常用到的几个方法,也是面试时经常被问到的知识点. 1.round round方法表示四舍五入.round意为“环绕”,其原理是在原数字的基础上先加上0.5再向下取整,它的返回值为int类型,例如,Math.round(11.5)等于

php中除法取整的方法(round,ceil,floor)

PHP中遇到需要将除法所得结果取整的情况时,就需要用到以下方法: 1. round:四舍五入 round() 函数对浮点数进行四舍五入. 语法:round(x, prec) 参数 描述 x 可选.规定要舍入的数字. prec 可选.规定小数点后的位数. 说明:返回将 x 根据指定精度 prec (十进制小数点后数字的数目)进行四舍五入的结果.prec 也可以是负数或零(默认值). 提示:PHP 默认不能正确处理类似 "12,300.2" 的字符串. 例: 1 <?php 2 ec

Math round、ceil、floor

不同方法的取舍原则: ceil:天花板,往大里取 floor:地板,往小里取 round:正数:四舍五入,5是分界点 负数:小数大于5(Math.round(-0.51)输出是-1,-0.5则是0),往小里取,反之,则往大里取 System.out.println(Math.round(11.6));//12 System.out.println(Math.round(11.2));//11 System.out.println(Math.round(11.5));//12 System.out

iOS中的round、ceil、floor函数略解

苹果官方文档位置:usr/include > math.h extern float ceilf(float); extern double ceil(double); extern long double ceill(long double); extern float floorf(float); extern double floor(double); extern long double floorl(longdouble); extern float roundf(float); ex

php取整函数floor(),round(),intval(),ceil()

ceil -- 进一法取整说明float ceil ( float value )返回不小于 value 的下一个整数,value 如果有小数部分则进一位.ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大. PHP取整函数例子 1. ceil() 例子 < ?php echo ceil(4.3); // 5 echo ceil(9.999); // 10 ?> floor -- 舍去法取整说明float floor ( float value

[转]PHP取整函数:ceil,floor,round,intval的区别详细解析

我们经常用到的PHP取整函数,主要是:ceil,floor,round,intval. 1.ceil -- 进一法取整 说明float ceil ( float value ) 返回不小于 value 的下一个整数,value 如果有小数部分则进一位.ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大. PHP取整函数例子 1. ceil() 例子 echo ceil(4.3); // 5 echo ceil(9.999); // 10 2.flo

MATLAB取整函数 fix floor ceil round

MATLAB取整函数 (1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans = 3    -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans = 3    -4 (3)ceil(x) : 大于x 的最小整数 >> ceil( [3.12 -3.12]) ans = 4    -3 (4)四舍五入取整 >> round(3.12 -3.12) ans = 0