mysql> CREATE TABLE ttt(id int, tt float(3,2));mysql> INSERT INTO ttt VALUES(1, '2.3424');mysql> INSERT INTO ttt VALUES(2, '200000.3434');mysql> SELECT * FROM ttt;
+------+-----------+
| id | tt |
+------+-----------+
| 1 | 2.34 |
| 2 | 200000.34 |
+------+-----------+
结果显示只保存两位小数,但是Float(3, 2)中的“3”的限制好像没起作用!
+------+-----------+
| id | tt |
+------+-----------+
| 1 | 2.34 |
| 2 | 200000.34 |
+------+-----------+
结果显示只保存两位小数,但是Float(3, 2)中的“3”的限制好像没起作用!
这是mysql网站上对float的英文原文说明,那个3并不是mysql中文文档中的“位数”、“宽度”。而是存储的精度要达到的字节位数。具体如何存储,要多用数据来测试的。根据我的测试,float(3,2)能保证前7位的精度。
如:
mysql> INSERT INTO ttt VALUES(2, '123456789.3434');mysql> SELECT * FROM ttt;
+------+---------------+
| id | tt |
+------+---------------+
| 1 | 2.34 |
| 2 | 123456792.00 |
+------+---------------+