create table t (id int primary key, value float);
insert into t value(1, 1616.625);
select round(value,2) from t where id=1;
【看到的非预期行为】
mysql> select round(value,2) from t where id=1;
+----------------+
| round(value,2) |
+----------------+
| 1616.62 |
+----------------+
1 row in set (0.00 sec)
【期望看到的行为】
mysql> select round(value,2) from t where id=1;
+----------------+
| round(value,2) |
+----------------+
| 1616.63 |
+----------------+
1 row in set (0.00 sec)
实际你这个例子我再mysql8上执行了一下
CREATE TABLE t_float (id INT PRIMARY KEY, VALUE FLOAT);
INSERT INTO t_float VALUE(1, 1616.625);
SELECT ROUND(VALUE,2) FROM t_float WHERE id=1;
表里的数据直接就被截断了。。。