Delphi的四舍五入函数Round有BUG,无法正常工作。
对于XXX.5的情况,整数部分是奇数,那么会Round Up,偶数会Round Down,例如:
x:= Round(17.5) = x = 18
x:= Round(12.5) = x = 12
请使用下面的函数代替Round:
function
DoRound(Value: Extended): Int64; procedure Set8087CW(NewCW: Word); asmMOV Default8087CW,AX
FNCLEX
FLDCW Default8087CW
end;const
RoundUpCW
= $1B32;var
OldCW
: Word;begin
OldCW
:= Default8087CW; trySet8087CW
(RoundUpCW);Result
:= Round(Value); finallySet8087CW
(OldCW); end;end
;
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




