我有一个包含数字数据(浮点)的列,并且需要仅对小数值进行四舍五入。
Actual Value Rounded Value
2370.09 --> 2370.10
2370.07 --> 2370.08
2370.05 --> 2370.06
2370.01 --> 2370.02
2370.02 --> 2370.02
2370.04 --> 2370.04
2370.06 --> 2370.06
2370.08 --> 2370.08
如果小数值(句点后)为奇数,则应增加 0.01;如果为偶数,则该值不会发生变化。
我尝试过SELECT ROUND(实际值, 1)
我怎样才能做到这一点?
最佳答案
基于 @scsimon 提供的其他答案中的模数示例,您可以在没有如下 case 语句的情况下执行此操作:
DECLARE @t TABLE
(
n numeric(10,2) NOT NULL
);
INSERT INTO @t (n)
VALUES (2370.09)
, (2370.07)
, (2370.06)
, (0)
, (1.01)
, (1.09)
, (1.9)
, (9999.99);
SELECT (t.n + (t.n % 0.02))
FROM @t t;
╔══════════════════╗ ║ (No column name) ║ ╠══════════════════╣ ║ 2370.10 ║ ║ 2370.08 ║ ║ 2370.06 ║ ║ 0.00 ║ ║ 1.02 ║ ║ 1.10 ║ ║ 1.90 ║ ║ 10000.00 ║ ╚══════════════════╝
关于sql - SQL Server 中的小数点四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52210936/