您的位置:首页 > 数据库 > MySQL

MySQL decimal、numeric 和double数据类型

2015-11-25 01:15 453 查看
场景:

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_size, digits)] [ZEROFILL]
存储大小:8字节
描述:双精度浮点数(负数范围-1.7976931348623157E+308到-2.2250738585072014E-308,0,正数范围2.2250738585072014E-308到1.7976931348623157E+308)

MySQL中存在float,double等非标准数据类型,

也有decimal这种标准数据类型。

其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: