如果十进制值为.6或更高,则舍入为圆形

时间:2015-01-26 07:08:30

标签: sql sql-server

我有这个要求,每个十进制值都是四舍五入的,所以我在SQL中使用了内置函数ROUND。

但我有这个要求,低于或等于.5的十进制值将不会四舍五入。我已对此进行过研究,但无法找到与我的关注相关的任何结果。

下面应该是预期的结果

SELECT ROUND(200.521231,0) --- 200.000000  
SELECT ROUND(200.436231,0) --- 200.000000  
SELECT ROUND(-200.436231,0) --- -200.000000  
SELECT ROUND(200.621231,0) --- 201.000000  

我正在使用MS-SQL Server

1 个答案:

答案 0 :(得分:3)

琐碎的事情是:

SELECT ROUND(@x -0.1,0)

其中@x是您要舍入的十进制值

如果允许@x为负数:

SELECT IF( @x>0, ROUND(@x -0.1,0), ROUND(@x +0.1,0))