delphi 四舍五入取整函数
2016-05-09 07:13
393 查看
一、四舍五入法
四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种。
所谓算术舍入法,就是我们通常意义上的四舍五入法。其规则是:当舍去位的数值大于等于5时,在舍去该位的同时向前位进一;当舍去位的数值小于5时,则直接舍去该位。
所谓银行家舍入法,其实质是一种四舍六入五留双(又称四舍六入五奇偶)法。其规则是:当舍去位的数值小于5时,直接舍去该位;当舍去位的数值大于等于6 时,在舍去该位的同时向前位进一;当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的同时向前位进一,如果前位数值为偶,则直接舍去该位。
综上所述,两种舍入法所得结果不尽一致,因此在使用时必须根据实际需要加以区别。否则会出现一些莫明其妙的偏差。
二、Delphi中的四舍五入函数
众所周知,Delphi中有一个四舍五入取整函数Round。但它是按银行家舍入法的规则实施舍入操作的,Delphi中没有按算术舍入法规则实施舍入操 作的四舍五入取整函数。为此,本人编写了一个基于算术舍入法的四舍五入取整函数RoundEx作为对Delphi的补充。具体实现如下:
四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种。
所谓算术舍入法,就是我们通常意义上的四舍五入法。其规则是:当舍去位的数值大于等于5时,在舍去该位的同时向前位进一;当舍去位的数值小于5时,则直接舍去该位。
所谓银行家舍入法,其实质是一种四舍六入五留双(又称四舍六入五奇偶)法。其规则是:当舍去位的数值小于5时,直接舍去该位;当舍去位的数值大于等于6 时,在舍去该位的同时向前位进一;当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的同时向前位进一,如果前位数值为偶,则直接舍去该位。
综上所述,两种舍入法所得结果不尽一致,因此在使用时必须根据实际需要加以区别。否则会出现一些莫明其妙的偏差。
二、Delphi中的四舍五入函数
众所周知,Delphi中有一个四舍五入取整函数Round。但它是按银行家舍入法的规则实施舍入操作的,Delphi中没有按算术舍入法规则实施舍入操 作的四舍五入取整函数。为此,本人编写了一个基于算术舍入法的四舍五入取整函数RoundEx作为对Delphi的补充。具体实现如下:
function RoundClassic(R: Real): Int64; begin Result:= Trunc(R); if Frac(R) >= 0.5 then Result:= Result + 1; end;
相关文章推荐
- 内核读写只读内存方法总结[Delphi描述]
- delphi线程的创建、挂起、激活与终止
- delphi概念性学习(一)
- delphi的文件夹监控控件,直接封装成可视化的控件,拖一下即可代码。核心为:ReadDirectoryChangesW
- Delphi ADO访问数据库
- Delphi xe 下快捷使用 FastMM 的内存泄露检测功能
- 用DELPHI中实现RAR文件解压到指定一目录
- Delphi 10.1 Berlin UTF8String Test
- 彻底删除Delphi中ActiveX面板中的第三方控件
- 《borland 传奇》原书及阅读器
- delphi中DDE通信技术
- delphi7如何实现 科学计数的转换。 比如我输入2,触发之后会转换成2.000000E+00.求赐教
- Delphi 调用串口例子
- VS2015编写能够被vb\delphi等调用的dll
- Delphi与C语言类型转换对照
- Delphi使用FindClass实现动态建立对像(有点像反射)
- Delphi使用TStringHash实现建立类(有点像反射)
- DELPHI数组,指针,字符串转换的例子
- Delphi字符串、PChar与字符数组之间的转换
- delphi string,pchar,char的比较