mysql——decimal类型与decimal长度

x33g5p2x  于2022-01-11 转载在 Mysql  
字(0.6k)|赞(0)|评价(0)|浏览(442)

分为三种:

  • float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)
  • double:双精度实型,含字节数为8,64bit,数值范围-1.7E308~1.7E308(15个有效位)
  • decimal:数字型,128bit,不存在精度损失,常用于银行账目计算(28个有效位)

顾名思义就是double型的实体占用内存空间是float的两倍。float是4个字节而double是8个字节。float和double类型的数据,无法精确表示计算结果,这是由于float和double是不精确的计算。

项目中有小数计算,需要限制小数点后两位,float类型计算有误差,于是使用decimal类型计算。

decimal的详细介绍

decimal(a,b)

参数说明:

a指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。

b指定小数点右边可以存储的十进制数字的最大个数,小数位数必须是从0到a之间的值,默认小数位数是0.

DECIMAL(20,2) 指的就是总共能存20位数字,末尾2位是小数(小数点不算在长度内)

总结

数值存储范围越小的精度越高,存储数值范围越大,精度就越不准确。

如果存储正常金额的情况下,使用money,好处在于可以存储不指定的小数点位数的数值,比较真实。如果对于既要要求精度,又要固定小数点位数的数值存储,采用decimal(numeric),优点在于可以自定义小数点位数,精度高。如果数值范围巨大只能用float(real)类型了,一般不提倡使用

相关文章

最新文章

更多