如何将十进制数转换或舍入到最接近的50.例如,如果我得到2.00到2.49那么它可能会变为2.50, 2.50到2.99然后它可能会变为3.00。 如果有人知道,请解决。
答案 0 :(得分:2)
这样的事情应该产生你需要的整理:
SELECT CEILING(<input> * 2.0) / 2.0
其中<input>
是当前产生您想要舍入的值的列或表达式。
答案 1 :(得分:0)
我不知道这是否是一种有效的方式,但我试过这个:
IF OBJECT_ID('MyTable','U') IS NOT NULL
DROP TABLE MyTable
GO
CREATE TABLE MyTable (num DECIMAL(10,2))
GO
INSERT INTO MyTable
values (1.00),(1.01),(1.49),(1.50),(1.51),(1.99),(2.00),
(11.00),(11.01),(11.49),(11.50),(11.51),(11.99),(12.00)
SELECT [num],
CASE
WHEN ( [num] - [Nbr] ) BETWEEN 0.01 AND 0.49 THEN [Nbr] + 0.5
ELSE [Nbr]
END AS [Result]
FROM (SELECT [num],
ROUND(num, 0) AS [Nbr]
FROM MyTable) t
注意:可以根据要求修改条件的情况。