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

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中float类型奇怪的减法有关问题

相关文章:

你感兴趣的文章:

标签云: