MySQL在插入数据库时更改十进制值(19,2)



我创建了如下所示的表:

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

现在,当我用简单的插入命令插入这个表时:

insert into sample_tbl values (18.939);

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

插入的值将正确四舍五入为18.94
您想要的是将值截断为小数点后2位,因此使用函数truncate():

insert into sample_tbl values (truncate(18.939, 2));
update sample_tbl set decimal_column =truncate(decimal_column,2)
  1. 如果它是DECIMAL(10,2(,它将总共有10个数字,其中2个是十进制值(2个十进制四舍五入意味着10.215保存为10.22,10.114变为10.11(。

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

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

最新更新