在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在最近版本的Delphi Pascal 编译器中,Round 函数是以 CPU 的 FPU (浮点部件) 处理器为基础的。这种处理器采用了所谓的 "银行家舍入法",即对中间值 (如 5.5、6.5) 实施Round函数时,处理器根据小数点前数字的奇、偶性来确定舍入与否,如 5.5 Round 结果为 6,而 6.5 Round 结果也为6, 因为 6 是偶数。 对于XXX.5的情况,整数部分是奇数,那么会Round Up,偶数会Round Down,例如: x:= Round(17.5) = x = 18 x:= Round(12.5) = x = 12
一、四舍五入法 function RoundClassic(R: Real): Int64; begin Result:= Trunc(R); if Frac(R) >= 0.5 then Result:= Result + 1; end;
-------------------------
世界上的许多国家已广泛采用“四舍六入法”。我国国家科委于1955年就作了推荐。“四舍 六入法”可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍 去,五前为奇要进一。” 好像短一点的口诀叫“四舍、六入、五凑偶” 据说欧洲银行全采用这个模式 这个都不知道,四舍六入五成双,Round都是这样处理的。
我也遇到过这个问题,起初也很奇怪,后来看了帮助,果然是四舍六入五靠偶,虽然楼上的所说的四舍六入是国际标准,但是中国的很多业务系统还是采取的是四舍 五入的方法,没办法,我只好自己写了个方法来四舍五入了。不过网上有一个不错的方法,虽然有取巧嫌疑,但是一般没什么问题,就是在后面加上 0.0000000001,很小的一个数,这时再来取两位,三位或四位就基本没问题了。可以试试 四舍六入五成双,是为了使大量数据求平均值更加精确 俺也是今天才发现“四舍、六入、五凑偶”,感谢有心的楼 “四舍、六入、五凑偶”比较经典哎~~
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论