如何舍入中值

时间:2015-06-09 11:59:17

标签: sql sql-server tsql

我有问题,我无法使用标量值函数修复错误。 我有下一个功能:

sleep()

在回复中,我得到了例如:1.155。 当我添加return (@list varchar(max)) returns float as begin declare @Median float select @Median = ( convert(float,(SELECT MAX(value) FROM (SELECT TOP 50 PERCENT value from split(@list,',') order by value) BottomHalf)) + convert(float,(SELECT MIN(value) FROM (SELECT TOP 50 PERCENT value from split(@list,',') order by value DESC) TopHalf)) ) / 2 option (maxrecursion 0) return (ROUND (@Median ,2)) end 时 我得到1.15但我需要1.16。我尝试添加(ROUND (1.155 ,2)),但它没有帮助我

1 个答案:

答案 0 :(得分:2)

据推测,您的返回值更像是1.154999999。这将向下舍入。如果你仍然需要获得1.16,那么尝试声明@median有三个小数位:

declare @median decimal(18, 3)

我怀疑这是否是你真正需要的。但是here是一个SQL小提琴。