读书人

MYSQL中float类型奇怪的减法有关问题

发布时间: 2012-09-13 09:51:52 作者: rapoo

MYSQL中float类型奇怪的减法问题
update user set money=money-0.01 where uName='701'

当数据库的money的值为0.01时 无法执行 提示错误如下:
Out of range value adjusted for column 'money' at row 1

当数据库的money的值为6.01时 执行下例语句就成功
update user set money=money-6.01 where uName='701'



money 字段是float类型 长度为10,保留2位小数,默认0.00;

请高手解答!

[解决办法]
奇怪,在我的电脑上怎么没有这个问题?
请问楼主用的是什么版本的mysql?

[解决办法]


没有出现你所说的问题。

建议你能详细描述你的错误产生步骤,否则别人很难模拟再现你的问题。

SQL code
mysql> desc t_a175460677; 
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| uName | char(3) | YES | | NULL | |
| money | float(10,2) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.06 sec)

mysql>
mysql> select * from t_a175460677;
+-------+-------+
| uName | money |
+-------+-------+
| 701 | 0.01 |
| 701 | 6.01 |
+-------+-------+
2 rows in set (0.06 sec)

mysql> update t_a175460677 set money=money-0.01 where uName='701';
Query OK, 2 rows affected (0.06 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql> select * from t_a175460677;
+-------+-------+
| uName | money |
+-------+-------+
| 701 | 0.00 |
| 701 | 6.00 |
+-------+-------+
2 rows in set (0.00 sec)

mysql>


[color=#FFFFFF][/color]

读书人网 >Mysql

热点推荐