MySQL decimal、numeric 和double数据类型


场景:



DECIMAL[(precision, [scale])] [UNSIGNED] [ZEROFILL]
存储大小:不确定

描述:存储精度重要的浮点数,如货币值等。需要指定精度和刻度(小数点后位数),MySQL的默认精度为10,默认刻度为0


   DECIMAL(M, D)

例 如:salary DECIMAL(5,2)   


在这个例子中,5 (精度(precision)) 代表重要的十进制数字的数目,2 (数据范围(scale)) 代表在小数点后的数字位数。在这种情况下,因此,salary 列可以存储的值范围是从 -999.99 到 999.99。(即M代表总位数,D代表小数点后的位数);
 当插入的值超过存储值的范围会报错:(例如将1000.03赋给salary时)


Out of range value for column 'salary' at row 1
 


当插入的值小数点后位数大于D时会报警告:(例如将99.8888赋给salary时)


Data truncated for column'salary' at row 1


numeric(M,D)与DECIMAL(M, D)一样。


DOUBLE
DOUBLE[(display_sizedigits)] [ZEROFILL]
存储大小:8字节
描述:双精度浮点数(负数范围-1.7976931348623157E+308-2.2250738585072014E-3080,正数范围2.2250738585072014E-3081.7976931348623157E+308

MySQL中存在float,double等非标准数据类型,
也有decimal这种标准数据类型。
其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值