【发布时间】:2013-02-03 17:37:37
【问题描述】:
我想Round(-0.0066219357357),它给了-1。
不应该是0吗?我可以用什么来正确舍入它?
更新: 该数字是 (LineDirection.X/distance) 的结果; 其中 LineDirection.X 是一个整数,而 Distace 是双精度数。
【问题讨论】:
-
我觉得很奇怪。那将是
Ceil()。Round有其他“问题”(它使用银行家的四舍五入) -
用 Delphi XE 控制台应用程序测试,没有用:
Writeln(Round(-0.0066219357357));显示 0! -
用
SetRoundMode设置的不同选项也总是给出0。 -
嗯。这是一个如此简单的测试用例,我很想说犯错不是一种选择。那么这里有什么不同呢?我是@D2009。
-
您确定没有意外使用的另一个 Round 函数吗?像这样的一行会给你带来问题:
function Round(e: Extended): Extended; begin Result := Trunc(e); end;
标签: delphi