提问人:Rasool Ghafari 提问时间:4/3/2020 更新时间:4/3/2020 访问量:241
插入数据库时,MySQL更改decimal(19,2)的值
MySQL change value of decimal(19, 2) when insert into database
问:
我创建了表格,如下所示:
create table sample_tbl
(
decimal_column decimal(19,2) null
);
现在,当我使用简单的插入命令插入此表时:
insert into sample_tbl values (18.939);
MySQL将其存储为18.94,我应该如何解决这个问题?我想存储实际价值:18.93
答:
1赞
Vora Ankit
4/3/2020
#1
update sample_tbl set decimal_column =truncate(decimal_column,2)
1赞
forpas
4/3/2020
#2
插入的值将正确舍入为 。
您想要的是将值截断到小数点后 2 位,因此请使用函数 truncate():
18.94
insert into sample_tbl values (truncate(18.939, 2));
1赞
Sandesh Mankar
4/3/2020
#3
如果是 DECIMAL(10, 2),则总共有 10 个数字,其中 2 个是十进制值(小数点后 2 次四舍五入意味着 10.215 保存为 10.22,10.114 变为 10.11)。
如果是 DECIMAL(10),则它没有任何十进制值,并且四舍五入为整数。
如果使用 FLOAT 或 DOUBLE PRECISION,则不必指定十进制值的数量,但它有其自身的缺陷。
评论
0赞
Rasool Ghafari
4/3/2020
我认为第三项是非常糟糕的功能。
0赞
Sandesh Mankar
4/3/2020
truncate 命令应该是解决您的问题的一个很好的解决方案。
评论