关于Round函数的一个错误,不知道是我错了,还是它自己错了。(100分)

  • 主题发起人 主题发起人 血狼
  • 开始时间 开始时间

血狼

Unregistered / Unconfirmed
GUEST, unregistred user!
我在写四舍五入程序的时候,发现Round(12.5)的结果还是12,这显然是错误的,但是其它都没有错,比如Round(11.5)=12.[:(!][:(][:(!]
 
是这样哦~~
bug!!
 
不是BUG吧,请看帮助,如果输入的正好是两个整数的中间值,ROUND总是返回一个偶数。
 
Delphi的四舍五入函数Round 对个位数为偶数的小数是五舍六入,
对个位数为奇数的小数才是四舍五入。

看看这个
http://club.pchome.net/2001/12/28/418630.htm
 
round帮助如下:
function Round(X: Extended): Int64;
Description
The Round function rounds a real-type value to an integer-type value.
X is a real-type expression. Round returns an Int64 value that is the value of X rounded to the nearest whole number. If X is exactly halfway between two whole numbers, the result is always the even number. This method of rounding is often called 揃anker抯 Rounding?
If the rounded value of X is not within the Int64 range, a run-time error is generated, which can be handled using the EInvalidOp exception.

"If X is exactly halfway between two whole numbers, the result is always the even number"这一句说得很清楚:
如果X恰好是两个整数之间,round的值为与它相近的偶数。

如果你试试round(13.5)得到的将是14
四舍五入最好如下使用:
trunc(x+0.5)
 
同意远帆,
 
同意远帆。
 
aggree with up
 
后退
顶部