我在MySQL中有一个类型为decimal(3,2)的字段,只有当我输入类似78.3时,它似乎总是具有9.99的值.为什么?
这就是我的表格:
mysql> describe testtable;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| firstname | varchar(20) | YES | | NULL | |
| lastname | varchar(20) | YES | | NULL | |
| justsomenum | decimal(3,2) | YES | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
当我插入这样的东西和选择:
mysql> insert into testtable (firstname, lastname, justsomenum) values ("Lloyd", "Christmas", 83.5);
Run Code Online (Sandbox Code Playgroud)
我选择时得到9.99.
mysql> select * from testtable;
+----+-----------+-----------+---------------+
| id | firstname | lastname | justsomenum |
+----+-----------+-----------+---------------+
| 1 | Shooter | McGavin | 9.99 |
| 2 | Lloyd | Christmas | 9.99 |
| 3 | Lloyd | Christmas | 9.99 |
| 4 | Lloyd | Christmas | 9.99 |
+----+-----------+-----------+---------------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
这是Mac OS X 10.5.8上的MySQL 5.0.86.
有任何想法吗?谢谢.
rec*_*ive 58
最大值为decimal(3, 2)9.99,因此当您尝试插入大于该值的内容时,其上限为9.99.decimal(5, 2)如果您想存储更大的数字,请尝试或其他.
第一个参数是精度的总位数,第二个参数是小数点后的位数.