MySQL 插入数据库时​​更改 decimal(19, 2) 的值

MySQL change value of decimal(19, 2) when insert into database

我创建了 table,如下所示:

create table sample_tbl
(
    decimal_column decimal(19,2) null
);

现在,当我使用简单的插入命令插入此 table 时:

insert into sample_tbl values (18.939);

MySQL 存储为 18.94,我该如何解决这个问题?我想存储实际值:18.93

update sample_tbl set decimal_column =truncate(decimal_column,2)

您插入的值已正确舍入为 18.94
你想要的是将值截断到小数点后两位,所以使用函数 truncate():

insert into sample_tbl values (truncate(18.939, 2));
  1. 如果是DECIMAL(10, 2)则一共有10个数,其中2个是十进制值(2个小数四舍五入意味着10.215保存为10.22,10.114变成10.11) .

  2. 如果它是 DECIMAL(10),它将没有任何小数值并四舍五入为整数。

  3. 如果您使用 FLOAT 或 DOUBLE PRECISION,则不必指定小数位数,但它有其自身的缺陷。