MySQL-十进制(M,D)与双精度(M,D)的比较
我知道这个问题已经被问过好几次了。。但是,我仍然没有得到一个满意的解释,特别是关于为什么我们必须使用十进制作为货币目的。。据我所知,MySQL-十进制(M,D)与双精度(M,D)的比较,mysql,sql,Mysql,Sql,我知道这个问题已经被问过好几次了。。但是,我仍然没有得到一个满意的解释,特别是关于为什么我们必须使用十进制作为货币目的。。据我所知, Decimal可以保存比Double Decimal存储精确值,Double存储近似值 那么,谁能解释一下,也许能给出一些关于 精确值和近似值是什么意思 我为什么要使用十进制进行货币用途 目前我正在使用Double(15,2),因为它为我的老板提供了足够的精度。此外,我在这方面做了一些测试,没有发现任何精度问题 测试查询: create table test(
Decimal
可以保存比Double
Decimal
存储精确值,Double
存储近似值十进制
进行货币用途Double(15,2)
,因为它为我的老板提供了足够的精度。此外,我在这方面做了一些测试,没有发现任何精度问题
测试查询:
create table test(
value1 Decimal(15,4),
value2 Double(15,4)
);
insert into test values(0.0001, 0.0001),
(123.123, 123.123),
(0.0000001, 0.0000001);
select sum(value1), sum(value2) from test
结果
SUM(VALUE1) SUM(VALUE2)
123.1231 123.1231
如果你现在不能做到这一点,并不意味着它在未来不会发生。如果你坚持使用双精度,就要为舍入错误做好准备。在货币操作方面,检查对此问题的评论,如well@Naktibalda嗯,这是人们不断提到的一个原因,但没有人真正给出一个好的例子..插入0.75*0.2这样的值并检查(不是直接检查0.15)好吧,在我的情况下,你的论点是无效的,检查。。如果这是错误的方法,那么请分享你的小提琴。