T-SQL轮特例
T-SQL round special cases
我需要一种在 T-SQL (SQL Server 2005) 中舍入的方法。
0.0041 -> 0.005
0.0049 -> 0.005
0.0040 -> 0.004
我已经用 ROUND()
尝试了以下 select:
SELECT ROUND(0.004, 3,1) + .001
问题是:它不适用于 0.0040 -> 0.004
这个:
SELECT CEILING(1000 * 0.0041) / 1000.0
产生:
0.005
而这个:
SELECT CEILING(1000 * 0.004) / 1000.0
产生:
0.004
试试这个:
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
我需要一种在 T-SQL (SQL Server 2005) 中舍入的方法。
0.0041 -> 0.005
0.0049 -> 0.005
0.0040 -> 0.004
我已经用 ROUND()
尝试了以下 select:
SELECT ROUND(0.004, 3,1) + .001
问题是:它不适用于 0.0040 -> 0.004
这个:
SELECT CEILING(1000 * 0.0041) / 1000.0
产生:
0.005
而这个:
SELECT CEILING(1000 * 0.004) / 1000.0
产生:
0.004
试试这个:
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