You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL中按0.25增量实现自定义舍入?

SQL实现0.25增量的自定义舍入逻辑

你需要的自定义0.25增量舍入完全可以实现,无需复杂的条件判断,通过简单的数学缩放结合ROUND()函数就能完成,核心逻辑如下:

核心公式

ROUND(your_value * 4, 0) / 4

原理说明

把目标数值乘以4后,原有的0.25增量规则会转化为对整数的标准四舍五入:

  • 原小数部分的分界点(0.125、0.375、0.625、0.875)乘以4后刚好是0.5、1.5、2.5、3.5,这正是ROUND()函数四舍五入到整数的临界值
  • 对缩放后的数值执行整数四舍五入,再除以4还原,就得到符合要求的X.00/X.25/X.50/X.75格式结果

数据库示例

MySQL/SQL Server

SELECT 
    ROUND(4.416 * 4, 0) / 4 AS rounded_value; -- 输出4.5
SELECT 
    ROUND(2.75 * 4, 0) / 4 AS rounded_value; -- 输出2.75
SELECT 
    ROUND(5.834 * 4, 0) / 4 AS rounded_value; -- 输出5.75
SELECT 
    ROUND(7.083 * 4, 0) / 4 AS rounded_value; -- 输出7.0

PostgreSQL

PostgreSQL的ROUND()函数默认支持整数舍入,写法一致:

SELECT ROUND(4.416 * 4) / 4 AS rounded_value;

规则匹配验证

针对你给出的规则逐一验证:

  1. 小数部分0.00-0.25:0.125*4=0.5,≥0.125时ROUND后向上到1,1/4=0.25;<0.125时ROUND后为0,0/4=0.00
  2. 小数部分0.25-0.50:0.375*4=1.5,≥0.375时ROUND到2,2/4=0.50;<0.375时ROUND到1,1/4=0.25
  3. 小数部分0.50-0.75:0.625*4=2.5,≥0.625时ROUND到3,3/4=0.75;<0.625时ROUND到2,2/4=0.50
  4. 小数部分0.75-0.99:0.875*4=3.5,≥0.875时ROUND到4,4/4=1.00;<0.875时ROUND到3,3/4=0.75

内容的提问来源于stack exchange,提问作者Dr.Prog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:15:40