MySQL中的数据类型之浮点型浮点型 | 占用字节数 | 范围 | float(单精度型) | 4 | -3.4E+38~3.4E+38 | double(双精度型) | 8 | -1.8E+308~1.8E+308 |
浮点型的声明:float(M,D) double(M,D) 案例:- mysql> create table stu5(
- -> num1 float(5,2), -- 浮点数
- -> num2 double(6,1) -- 双精度数
- -> );
- Query OK, 0 rows affected (0.05 sec)
- mysql> insert into stu5 values (3.1415,12.96);
- Query OK, 1 row affected (0.00 sec)
- mysql> select * from stu5;
- +------+------+
- | num1 | num2 |
- +------+------+
- | 3.14 | 13.0 |
- +------+------+
- 1 row in set (0.00 sec)
复制代码 MySQL浮点数支持科学计数法
- mysql> create table stu6(
- -> num float # 不指定位数,默认是小数点后面6位 double默认是17位
- -> );
- Query OK, 0 rows affected (0.03 sec)
- mysql> insert into stu6 values (5E2),(6E-2); # 插入科学计数法
- Query OK, 2 rows affected (0.00 sec)
- Records: 2 Duplicates: 0 Warnings: 0
- mysql> select * from stu6;
- +------+
- | num |
- +------+
- | 500 |
- | 0.06 |
- +------+
- 2 rows in set (0.00 sec)
复制代码 浮点数精度会丢失
- mysql> insert into stu6 values(99.999999999);
- Query OK, 1 row affected (0.00 sec)
- mysql> select * from stu6;
- +------+
- | num |
- +------+
- | 100 |
- +------+
复制代码 小结:
1、浮点数有单精度和双精度2、浮点数支持科学计数法3、浮点数精度会丢失
3、小数(定点数) 原理:将整数部分和小数部分分开存储 语法: 案例: - mysql> create table stu8(
- -> num decimal(20,9) # 存放定点数
- -> );
- Query OK, 0 rows affected (0.00 sec)
- mysql> insert into stu8 values(12.999999999);
- Query OK, 1 row affected (0.00 sec)
- mysql> select * from stu8;
- +--------------+
- | num |
- +--------------+
- | 12.999999999 |
- +--------------+
- 1 row in set (0.00 sec)
复制代码小结: 1、decimal是变长的,大致是每9个数字用4个字节存储,整数和小数分开计算。M最大是65,D最大是30,默认是(10,2)。2、定点和浮点都支持无符号、显示宽度0填充。 |