MySQL 对查询的值四舍五入保留两位小数
📅 2026/7/25 0:10:19
👁️ 次浏览
标签MySQL、数值处理、ROUND、金额计算、SQL优化、财务统计前言开发财务、充值、消费、余额相关业务时经常遇到金额展示需求数据库原始小数位数较多前端需要统一保留两位小数展示。很多同学习惯把原始数值查询出来在 Python / Java 代码里做四舍五入处理。实际上 MySQL 原生提供数值函数可以直接在SQL层面完成四舍五入。本文重点讲解ROUND()函数区分容易混淆的TRUNCATE()、FORMAT()同时梳理财务场景踩坑点、NULL空值兼容方案给出现成可直接复制的业务模板。一、核心函数ROUND() 四舍五入语法ROUND(数值,保留小数位数)规则四舍五入返回类型数值类型可以继续参与加减运算基础示例SELECTROUND(123.456,2);-- 123.46SELECTROUND(123.454,2);-- 123.45SELECTROUND(100,2);-- 100.00结合聚合函数 SUM()业务最常用统计充值、余额、消费金额场景-- 当日充值总额求和后四舍五入保留2位SELECTROUND(SUM(money),2)ASday_rechargeFROMsys_recharge_logWHEREcreate_timeCURDATE()ANDcreate_timeCURDATE()INTERVAL1DAY;二、重要配套兼容NULL空值 IFNULL一个高频坑当查询没有匹配数据时SUM()结果为NULLROUND(NULL,2)依旧返回NULL。程序如果直接使用会出现空值报错。解决方案IFNULL()兜底不存在数据时返回 0.00。标准生产写法SELECTIFNULL(ROUND(SUM(money),2),0.00)ASday_rechargeFROMsys_recharge_logWHEREcreate_timeCURDATE()ANDcreate_timeCURDATE()INTERVAL1DAY;逻辑说明先执行 SUM 求和求和结果传入ROUND四舍五入如果整体结果为NULL替换为 0.00三、容易混淆的两个函数不要用错1. TRUNCATE() 直接截断不四舍五入SELECTTRUNCATE(123.459,2);-- 123.45适用场景只想要舍弃后面小数、不进位财务金额统计严禁使用会造成金额误差。2. FORMAT() 格式化谨慎使用SELECTFORMAT(IFNULL(ROUND(SUM(money),2),0),2);特性自动增加千分位逗号1,234.56返回字符串类型⚠️重大风险拿到结果后如果继续做数值加减运算极易引发类型异常只适合直接前端展示不适合后续参与计算。总结区分✅ 金额统计、后续还要运算ROUND IFNULL❌ 财务计算不要用 TRUNCATE❌ 需要二次运算不要使用 FORMAT四、实战多字段横向汇总场景仪表盘统计多条金额指标一次性统一处理小数SELECTIFNULL(ROUND(SUM(CASEWHENtype1THENmoneyELSE0END),2),0.00)ASmoney1,IFNULL(ROUND(SUM(CASEWHENtype2THENmoneyELSE0END),2),0.00)ASmoney2,IFNULL(ROUND(SUM(price),2),0.00)ASconsumeFROMsys_balanceWHEREexpire_timeNOW()ANDstatus1ANDuser_idxxx;五、两种实现方案对比SQL处理 VS 应用代码处理方案ASQL内部 ROUND 处理推荐优点统一规则前后端不需要重复维护保留小数逻辑减少应用层判空、类型转换代码多条统计汇总时代码更简洁。缺点复杂计算逻辑全部压在数据库极端大量并发场景需要评估压力。方案B原始数值查出Python/Java代码四舍五入优点灵活可以针对不同场景切换保留位数缺点每个接口都要重复写格式化逻辑容易漏写多人开发容易出现标准不统一有的四舍五入、有的直接截断。建议规范单纯展示类报表、后台统计页面优先SQL层统一ROUND。六、高频开发踩坑清单坑1函数顺序写反❌ 错误写法ROUND(IFNULL(SUM(money),0.00),2)逻辑没问题但推荐下面可读性更强顺序✅ 推荐顺序IFNULL(ROUND(SUM(money),2),0.00)坑2忘记处理NULL程序拿到None没有业务数据时 SUM 返回 NULL前端展示出现空白。务必搭配 IFNULL。坑3使用FORMAT接收后继续运算# 危险FORMAT返回带逗号的字符串转float报错row[day_recharge]1,200.50float(row[day_recharge])# 转换异常坑4金额字段使用float存储浮点类型本身存在精度丢失最佳实践金额使用DECIMAL(18,2)存储从根源避免精度问题。七、编码规范模板直接复制使用单条金额统计标准模板SELECTIFNULL(ROUND(SUM(money),2),0.00)ASnumFROMsys_recharge_logWHEREcreate_timeCURDATE()ANDcreate_timeCURDATE()INTERVAL1DAYANDtype1;分组统计场景SELECTtype,IFNULL(ROUND(SUM(money),2),0.00)AStotal_moneyFROMsys_balanceWHEREstatus1GROUPBYtype;八、全文总结四舍五入优先使用 ROUND(数值,2)返回数值支持后续运算无匹配数据会产生NULL固定搭配IFNULL(...,0.00)兜底TRUNCATE 截断不进位财务业务禁止随意使用FORMAT生成带千分位字符串仅用于直接展示不要参与数值计算报表类金额统计建议在SQL层统一处理小数规则避免应用代码各处重复格式化存储金额尽量使用 DECIMAL 类型规避浮点数精度丢失隐患。财务数据对精度敏感统一SQL层使用ROUND规范处理能极大减少前后端因小数保留规则不一致产生的对账问题。
3步彻底卸载Windows Edge浏览器:专业PowerShell脚本工具EdgeRemover使用指南 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/…
📅 2026/7/25 0:10:19
所谓工业机器人减速器精密焊接,是指在RV减速器和谐波减速器的核心传动部件制造过程中,通过激光焊接将摆线轮、柔轮、轴承座等高精度零件以微米级定位精度进行连接,焊缝的变形量必须控制在传动精度允许的范围内——通常不超过0.05mm。 这个要求…
📅 2026/7/25 0:09:19
MelonLoader Unity模组加载器:从零开始的完整安装与配置指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader
如果你…
📅 2026/7/25 0:09:19
Gradio与Streamlit的ML演示应用对比:快速原型开发的选型指南Gradio和Streamlit是目前ML社区中最流行的两个快速原型演示框架。两者都宣称"用Python代码即可构建交互式Web应用",但在设计理念、组件生态和底层机制上存在本质差异。本文从事件驱动…
📅 2026/7/25 1:29:41
那天下午,工厂产线突然停了。操作工急急忙忙跑过来,说电机转速不稳,时快时慢。我打开PLC程序,发现那个负责电机调速的PWM模块参数被人改过——有人觉得把频率调高能让电机转得更快,结果适得其反。 这种场景在自动化现场太常见了。PWM(脉冲宽度调制)看起来简单,不就是调…
📅 2026/7/25 1:29:41
补充MySQL官网知识–解锁Online VARCHAR字段扩展与Index的关系
引言:一个让DBA头疼的“小操作”在日常的数据库运维中,我们经常会遇到这样一个场景:业务需求变更,需要把某个VARCHAR字段的长度从VARCHAR(50)扩展到VARCHAR(100)。很…
📅 2026/7/25 1:29:41
精选 5 款基于 .NET 开源免费、功能强大的 Windows 系统优化工具
作为编程讲师,我深知系统性能对开发效率的重要性。Windows 系统在长期使用后,会产生垃圾文件、注册表冗余、启动项过多等问题,导致系统变慢。幸运的是,.NET 社区为…
📅 2026/7/25 1:29:41
在山东地区,LED驱动电源作为太阳能控制器、太阳能一体化光源及智能控制系统的核心部件,其选型与订购直接影响系统性能、稳定性和长期运营成本。本文基于行业技术实践与合规标准,梳理关键要点,供从业者与终端用户参考。一、选型核心…
📅 2026/7/25 1:29:41
说实话,以前我对这玩意儿真没太当回事。觉得不就是个开关嘛,通电就吸合,断电就断开,有啥好挑的?直到去年接了个工业厂房的自动化改造单子,差点没把我心态搞崩。那项目是个老厂房升级,客户非要上全套智能控制,预算卡得死死的,但要求一点不能含糊。我一开始图省事,直接…
📅 2026/7/25 1:28:25
1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…
📅 2026/7/25 0:00:17
1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…
📅 2026/7/25 0:00:17
一、直达船员,预警链路最短营运船舶强制标配 VHF 船载电台,属于驾驶室常态化值守设备;预警语音直接传递至驾驶人员,区别于岸上声光报警(船员经常听不到)、短信 / 小程序(船员极少主动查看&#…
📅 2026/7/25 0:00:17
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/25 1:09:03
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/25 1:09:03
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/25 1:09:03
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/24 7:08:08
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/24 17:08:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/24 5:08:03