MYSQL数据类型DECIMAL用法:

decimal

decimal( p, d )

其中 p 的取值范围为 1- 65, d 的取值范围为0 - 30;

默认不写的话 decimal () 中p =10,d = 0;

写上一个的话 decimal (5)表示 d = 5;

p 代表的是数的有效长度(整数和小数位之和)d 代表的是精度(小数点后的位数)

必须满足p >= d;

举例
create table t1 (num decimal(3,1));
​
insert into from t1 values(1.21);
​
select * from t1;

结果为1.2 (因为 d = 1 要求小数点后是一位数,所以不是 1.21,结果的有效位数为 2< p,符合要求,故为 1.2)

insert into from t1 values(12.1);

结果为 12.1 符合要求 p = 3, d = 1;

insert into from t1 values(12.1212)

结果为 12.1;虽然看起来位数大于 p,实际上小数点后遵循四舍五入,0.1212 保留一位小数值为 0.1

故 12.1212 取值符合要求。

insert into from t1 values(12.5656)

结果为 12.6,小数点后遵循四舍五入,0.5656 保留一位小数值为 0.6

故 12.5656 取值符合要求。

insert into from t1 values(121.1)

121.1 有效位数为 4 > 3,不符合要求。

insert into from t1 values(121.0)

121.0 有效位数为 4 > 3,不符合要求。

insert into from t1 values(121)

121 的没有小数部分,不满足 d = 1,不符合要求。

insert into from t1 values(12)

结果为 12.0 符合要求,题目要求小数点后有一位,是整数的话且整数位+小数位 <= p ,小数点后补 0。

insert into from t1 values(1) 

结果为 1.0 符合要求,题目要求小数点后有一位,整数位 + d < p ,小数点后补 0,补 1 位(因为 d = 1)。

有些绕,希望帮助大家。

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值