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

MySQL查询如何去除.00小数位,保留非.00的小数位?

实现MySQL数值格式调整:去除.00保留其他小数位

当然可以实现这个需求!在MySQL里有几种简洁的方式来处理这种数值格式调整,我给你分享两个常用的方案:

方法一:基于数值判断的CASE表达式

这个方法会先判断数值的小数部分是否为0,再决定输出格式,返回的结果是数值类型,适合后续还要做数值计算的场景。

核心思路是用MOD()函数获取数值除以1的余数(也就是小数部分),如果余数为0,就把数值转成整数;否则保留原数值。

示例代码:

SELECT 
    CASE
        WHEN MOD(your_column, 1) = 0 THEN CAST(your_column AS UNSIGNED)
        ELSE your_column
    END AS formatted_value
FROM your_table;

举个例子:当your_column是3.00时,MOD(3.00,1)返回0,会被转成整数3;当值是2.56时,余数是0.56,就直接返回2.56。

方法二:字符串截断法

如果你的场景更关注显示格式,不需要返回数值类型,可以用字符串处理函数直接去掉末尾的.00,操作更直观。

示例代码:

SELECT 
    TRIM(TRAILING '.00' FROM CAST(your_column AS CHAR)) AS formatted_value
FROM your_table;

这个逻辑是先把数值转成字符串,再用TRIM(TRAILING '.00' ...)去掉末尾的.00。比如3.00转成字符串是'3.00',截断后变成'3';2.56转成字符串是'2.56',没有.00结尾,所以保持不变。

小提示

如果你的字段是FLOAT类型,要注意浮点精度问题,可能会出现类似3.0000001的情况导致判断失误,建议先通过ROUND(your_column, 2)保留两位小数后再处理,避免精度干扰。

内容的提问来源于stack exchange,提问作者Anish Joseph

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:46:20