四舍五入函数 function MyRound2

function MyRound2(Money: Real): Real; //四啥五入
var
Temp: Integer;
begin
 
 
if ((Money <= 0.04) and (Money >= 0)) then
Money := 0.1
else if ((Money < 0) and (Money > -0.04)) then
Money := -0.1;
// Modified by Mawei_wei 2016-04-09 11:38:15 解决 9.65 =9.649999999 问题 计算机浮点位问题 2.1=2.09999999
Temp := Trunc(Money * 100 +0.00000000005);
 
 
if Temp > 0 then
begin
// if Temp mod 10 >= 4 then
// 例 鹅不吃草药品 单位0.14 数量 6 总金额0.84 老的为 0.9错误
if Temp mod 10 > 4 then
Temp := ((Temp div 10) + 1) * 10
else
Temp := (Temp div 10) * 10;
Result := Temp / 100;
end
else
begin
Temp := -Temp;
// if Temp mod 10 >= 4 then
if Temp mod 10 > 4 then
Temp := ((Temp div 10) + 1) * 10
else
Temp := (Temp div 10) * 10;
 
 
Result := -Temp / 100;
end;
end;

原文地址:https://www.cnblogs.com/maweiwei/p/13728396.html