T-SQL圆形特例

时间:2017-03-29 14:29:21

标签: sql sql-server tsql rounding

我需要一种在T-SQL(SQL Server 2005)中进行舍入的方法。

0.0041 -> 0.005
0.0049 -> 0.005
0.0040 -> 0.004

我使用ROUND()尝试了以下选择:

SELECT ROUND(0.004, 3,1) + .001

问题是:它不适用于0.0040 - > 0.004

2 个答案:

答案 0 :(得分:2)

此:

SELECT CEILING(1000 * 0.0041) / 1000.0

产生

0.005

而这:

SELECT CEILING(1000 * 0.004) / 1000.0

产生

0.004

答案 1 :(得分:1)

试试这个:

SELECT X 
, CEILING(X * 1000) / 1000 AS X4
FROM (
SELECT 0.0041 X UNION ALL 
SELECT 0.0049 UNION ALL 
SELECT 0.0040 ) A

输出:

X                                       X4
--------------------------------------- ---------------------------------------
0.0041                                  0.005000
0.0049                                  0.005000
0.0040                                  0.004000