标签:存储 double decimal float 小数点 数值 mysql 长度
分为三种:
- 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)类型了,一般不提倡使用
标签:存储,double,decimal,float,小数点,数值,mysql,长度 来源: https://blog.csdn.net/qq_43842093/article/details/122401672
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。