mysql浮点数精度
小数类型
浮点数
浮点型又称之为精度类型:是一种有可能丢失精度的数据类型,数据有可能不那么准确(由其是在超出范围的时候)。
浮点型之所以能够存储较大的数值(不精确),原因就是利用存储数据的位来存储指数。
float
单精度浮点数,采用4个字节存储,保证7个位的精度。
Float(M,D):表示一共存储M个有效数字,其中小数部分占D位。M(1255)称为精度,D(130)称为标度且不能大于M-2,是可选的。
对于小数位数超长的,会采用四舍五入进行进位。
double
双精度浮点数,采用8个字节存储,表示的范围更大,精度最大15位。
定点数
能够保证数据精确的小数(小数部分可能不精确,超出长度会四舍五入),整数部分一定精确。
mysql中定点数只有一种,就是Decimal(M,D)。
Decimal定点数:系统自动根据存储的数据来分配存储空间,每大概9个数就会分配四个字节来进行存储,同时小数和整数部分是分开的。采用M+2个字节存储。
Decimal(M,D):M表示总长度,最大值不能超过65,D代表小数部分长度,最长不能超过30。(默认为10,0)是必选的。
相关文章