Delphi中的四舍五入问题
作者:互联网
2025-08-17
在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:
采用的是四舍六入五留双。即当舍或入位大于或小于五时按四舍五入来处理,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。
示例 结果
i:= Round(11.5) 12
i:= Round(10.5) 10
这种Round其实是按照银行家算法,统计学上一般都用这种算法,比传统的"四舍五入"要科学。
如果要使用传统的"四舍五入"方法,可以使用下面函数:
function RoundClassic(R: Real): Int64;
begin
Result:= Trunc(R);
if Frac(R) >= 0.5 then
Result:= Result + 1;
end;
其实在VB、Excel、.net相关的语言中都有这个问题。
相关标签:
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
修改 Delphi 10.3.3 IDE 字体和字体大小
Delphi 3.0中连接数据库的三种方式
Oralce 调用Delphi写DLL去访问C# WebService的问题
一个C++及Delphi做的压缩程序
怎样在C#中调用Delphi6写的DLL
关于C#下写的Web Service 服务在Delphi下调用时的问题
在Delphi中的Access技巧集
传递和返回数据到一个Delphi编写的UDF
如何用Delphi和Web Services开发短信应用程序
如何用Delphi实现StringTokenizer功能
AI精选
