在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.9为8.9,但如果我把值设为7.95,则圆函数的结果为8。
为什么我的值8.95会得到8.9而不是9?
答案 0 :(得分:1)
浮点(REAL和FLOAT)数据是近似值。 DECIMAL(NUMERIC)是准确的:msdn.microsoft.com/en-us/library/ms187912(v=sql.105).aspx 这可能是这种看似不一致的行为的原因。
答案 1 :(得分:-1)
对于8.975,它仅给出9。你应该用这个,
@result=round(@value,1,1)