3

在 SQL Server 2008 中:

declare @Value float
declare @result float 

set @Value=7.95
select @result=round(@Value,1)
print @result /*Prints 8*/

set @Value=8.95
select @result=round(@Value,1)
print @result /*Prints 8.9*/

对于 8.95,得到的结果是 8.9,但是如果我把值设为 7.95,则轮函数的结果是 8。

为什么值 8.95 得到 8.9 而不是 9?

4

2 回答 2

1

浮点(REAL 和 FLOAT)数据是近似值。十进制(数字)是准确的:msdn.microsoft.com/en-us/library/ms187912 (v=sql.105).aspx 这可能是这种看似不一致的行为的原因。

于 2012-06-18T10:56:22.233 回答
-1

对于 8.975,它只给出 9。你应该改用这个, @result=round(@value,1,1)

于 2012-06-18T09:00:34.937 回答