mysql中的数据类型有:float,double等非精准数据类型和decimal这种精准。
区别:float,double等非精准类型,在db中保存的是近似值。
decimal则以字符串的形式保存精确的原始数值
decimal(M,D)
参数说明:
M:指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度为38.
D:指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从0~M之间的值,默认小数位数是0.
举例说明,123456.23653234568这个数存你说的三个格式
decimal:123456
decimal(3):999
decdimal(3,2):9.99
decimal(11,5)123456.23653
超出精度范围的数会被强制进位并只显示数据类型定义的格式
默认状态:
浮点数如果不写精度和标度,会按照实际精度值保存,如果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错;定点数如果不写精度和标度,则按照默认值decimal(10,0)来操作,如果数据超过了精度和标度值,系统会报错。