16、MySQL 教程 - MySQL 数据类型-浮点型和定点型

什么是小数型呢?字面意思就是带小数点的数值型。在mysql中,小数又细分为浮点型和定点型。浮点型的特点是小数点浮动,有精度丢失;定点型特点就是小数点固定,不会丢失精度。浮点型又分float和double,float占用4个字节存储数据,精度范围大概为7位左右;double占用8个字节存储数据,精确范围大概为15位左右。

浮点型

创建浮点数表:直接float表示没有小数部分;float(M,D) 其中M表示总长度,D表示小数部分长度,所以整数部分长度为M-D;

举例:

 

查看创建好的浮点型表,然后插入数据。

 

插入数据可以直接写小数,也可以用科学技术法表示。

 

查看数据表数据效果

 

举例一个精度丢失的问题,就是四舍五入的场景。

 

上面显示,我们明明插入的是10个9,但是数据库存储进去之后就显示10000000000,发现进位,这种四舍五入的情况在数据库中是运行存在的,所以浮点型是有精度丢失,如果业务数据不能丢失精度,那么就不可以采用这个浮点型,例如银行存储用户的余额就不应该采用浮点型。

定点型

定点型是绝对保证整数部分精度不丢失,小数部分理论上也不会丢失精度。

创建一个定点型表

 

插入数据,定点型和float浮点型进行对比。

 

小数部分超出会报警告。证明一下定点型不会丢失进度,一下根本就不会发生进位的情况。