sql - 在 SQL Server 中四舍五入十进制值
问题描述
我有一列包含数值数据(浮点数),需要四舍五入唯一的十进制值。
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(Actual Value, 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;
╔══════════════════╗ ║(无列名)║ ╠══════════════════╣ ║ 2370.10 ║ ║ 2370.08 ║ ║ 2370.06 ║ ║ 0.00 ║ ║ 1.02 ║ ║ 1.10 ║ ║ 1.90 ║ ║ 10000.00 ║ ╚══════════════════╝
推荐阅读
- android - 如何修复 Android 8 中损坏的意图过滤器
- google-cloud-iot - 谷歌云物联网核心证书
- android - 构建项目:outOfMemory (Android studio 3.4)
- javascript - 刷新SetInterval js
- hibernate - Hibernate 生成不正确的查询
- sql - 使用内连接选择出现次数最多的 SQL
- java - 用 dropwizard 编写的简单 todo 应用后端 api 产生 500 错误
- python - For循环返回DataFrame中的唯一值
- django - 当我发出 POST 请求时,我收到“没有提供凭据的响应”
- php - PHP-根据另一个数组的值对索引数组进行排序