今天介绍MySQL中的另一个很重要的类型,浮点数和定点数类型。
按小数点是否固定来分为浮点数和定点数两种类型。
小数点根据需要可以浮动的,成为浮点数类型,而相反固定的成为定点数类型。
1.浮点数
浮点数可以根据所表示的精度不同可以分为float和double两种类型。
其中float是单精度浮点类型,所占用的字节数是4个。
double是双精度浮点数,所占用的字节数是8个。(能表示的精度更高)
注意:float和double类型如果不指定精度的情况下,会默认按照实际的精度显示。
2.定点数
定点数是decimal类型的,其取值的范围是由M和D决定的,其中M是表示精度是指不包括小数点的位数,D是表示标度,D是指小数点后面保留几位有效数字的。
例子,例如要插入数字345.784,其类型为decimal(5,2),其值就会变成345.78,去掉一位小数,decimal类型的字节数是M+2,其储存空间是根据其精度来决定的。
注意:在MySQL当中,定点数是以字符串的形式储存的,其精度比浮点数要高,定点数类型可以避免浮点数表示法带来的舍入误差问题,并确保数值计算的精确性。