首页 > 解决方案 > 四舍五入 mysql 0.5 并不总是上升

问题描述

https://i.stack.imgur.com/pxEQW.png

CREATE TABLE `zz` (
  `jum_r` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `zz` VALUES (71045),(31875),(12045),(172125),(27325),(5465);


SELECT 
  jum_r, 
  ROUND(ROUND((jum_r * 1.1), 2), 2) as q_gross,
    ROUND(jum_r * 1.1) as gross,
    ROUND((jum_r * 10 / 100), 2) as q_ppn,
    ROUND(jum_r * 10 / 100) as ppn
FROM zz;

根据图片我有数据。为什么舍入 0.5 并不总是上升......?我的查询有什么问题?谢谢

标签: mysqlsqldatabaserounding

解决方案


对于精确精度数字(例如 DECIMAL),MySQL 将 0.5 向上舍入到下一个最高整数。对于不精确的数字(例如 FLOAT),MySQL 依赖于底层 C 库的舍入,这通常是“舍入到偶数”。文档参考这里


推荐阅读