mysql中的Decimal括号怎么写,decimal(m,d)

第一次看到decimal(m,d)一头雾水,知道肯定是个范围,但是不知道范围的规则,看了一些文章发现说的都不是很明白,于是去官网看了下。

大概意思是这样的:

decimal(m,d)
m是数字的最大位数,他的范围是从1-65;
d是小数点后的位数,他的范围是0-30,并且不能大于m。

如果m被省略了,那么m的值默认为10,
如果d被省略了,那么d的值默认为0.

举例表示:

1、decimal(5,2) 所指代的范围是-999.99~999.99 数字的最大位数是5位,小数点右侧是2位,即有两位小数。

2、decimal(7,6)所指代的范围是-9.999999~9.999999 数字的最大位数是7位,小数点右侧是6位,即有六位小数。

 


字的位数和所占字节数,有以下对应表:

小数点左侧位数数据结构所占的字节数
1–21
3–42
5–63
7–94

举例表示:

decimal(18,9)小数位左右各为9位数,此数据所占以上表格即为4字节整数位,4字节小数位;

decimal(20,6)整数位为14位,小数位位6位,此数据需要4个字节给整数位的9位和3字节给另外的5位整数,另外小数位需要3个字节,总共是4+3+3 = 11个字节。

 

decimal不能够存储以“+”、“-”和“0”开头的数据,如果是“+”开头momo默认存为正数,而“-”开头则不存储

 

具体的对decimal的定义,可以在mysql源码中的strings/decimal.c文件中的decimal2bin()函数查看。

 

  • 11
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值