MySQL在插入数据库时更改十进制(19,2)的值
我创建了一个表,如下所示:MySQL在插入数据库时更改十进制(19,2)的值,mysql,decimal,precision,Mysql,Decimal,Precision,我创建了一个表,如下所示: create table sample_tbl ( decimal_column decimal(19,2) null ); 现在,当我使用简单的insert命令插入此表时: insert into sample_tbl values (18.939); MySQL将其存储为18.94,如何解决此问题?我想存储实际值:18.93插入的值被正确舍入为18.94。 您需要将值截断为小数点后2位,因此请使用以下函数: 插入的值将正确舍入为18.94。 您需要将值
create table sample_tbl
(
decimal_column decimal(19,2) null
);
现在,当我使用简单的insert命令插入此表时:
insert into sample_tbl values (18.939);
MySQL将其存储为18.94,如何解决此问题?我想存储实际值:18.93插入的值被正确舍入为18.94。 您需要将值截断为小数点后2位,因此请使用以下函数:
插入的值将正确舍入为18.94。 您需要将值截断为小数点后2位,因此请使用以下函数: 如果是小数10,则总共有10个数字,其中2个是十进制值,2个十进制舍入,这意味着10.215保存为10.22,10.114变为10.11 如果它是小数10,它将没有任何十进制值,并四舍五入为整数 如果使用FLOAT或DOUBLE-PRECISION,则不必指定十进制值的数量,但它有自己的缺陷 如果是小数10,则总共有10个数字,其中2个是十进制值,2个十进制舍入,这意味着10.215保存为10.22,10.114变为10.11 如果它是小数10,它将没有任何十进制值,并四舍五入为整数 如果使用FLOAT或DOUBLE-PRECISION,则不必指定十进制值的数量,但它有自己的缺陷
我认为第三项是非常糟糕的功能。truncate命令应该是解决问题的好方法。我认为第三项是非常糟糕的功能。truncate命令应该是解决问题的好方法。
update sample_tbl set decimal_column =truncate(decimal_column,2)
insert into sample_tbl values (truncate(18.939, 2));