mysql——decimal类型与decimal长度

分为三种:

  • 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)类型了,一般不提倡使用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值