MySQL如何四舍五入保留4位小数?如何将237.704918转为237.71?
MySQL数值四舍五入问题解决方案
1. 四舍五入保留4位小数
直接使用MySQL内置的ROUND函数即可,第二个参数传入要保留的小数位数:
-- 语法:ROUND(待处理数值, 保留小数位数) SELECT ROUND(237.704918, 4);
以上语句运行结果为237.7049,符合保留4位小数的四舍五入要求。
2. 如何将237.704918处理为237.71
首先需要明确标准ROUND函数的计算逻辑:四舍五入到N位小数时,仅判断第N+1位的数值是否≥5,不会累计后面的位数进位。
你要保留2位小数时,237.704918的第3位小数是4,小于5,所以直接舍去后面所有位数,得到237.70,你看到的237.7是输出时末尾无意义的0被自动省略导致的,属于正常现象。
如果业务需要得到237.71的结果,可以选择符合你需求的两种实现方式:
- 方式一:向上取整到2位小数,只要第2位小数后有非0数值就进位
SELECT CEIL(237.704918 * 100) / 100;
运行结果为237.71
- 方式二:先保留3位小数四舍五入,再对结果保留2位小数四舍五入
SELECT ROUND(ROUND(237.704918, 3), 2);
计算逻辑为先将237.704918保留3位得到237.705,再对237.705做2位小数四舍五入,第3位为5进位,最终得到237.71
补充提示
如果需要固定展示指定小数位数,避免末尾0被省略,可以搭配FORMAT函数使用,返回格式化后的字符串:
-- 固定展示2位小数 SELECT FORMAT(ROUND(237.704918, 2), 2);
返回结果为字符串类型的237.70
内容的提问来源于stack exchange,提问作者Vei Jar
相关产品推荐
相关产品推荐

