大家好,请教个问题:
mysql> SELECT 1093663.00-1093662.99;
+-----------------------+
| 1093663.00-1093662.99 |
+-----------------------+
| 0.01 |
+-----------------------+
1 row in set (0.00 sec)mysql> SELECT 1093663.00-1093662.99=0.01;
+----------------------------+
| 1093663.00-1093662.99=0.01 |
+----------------------------+
| 0 |
+----------------------------+
1 row in set (0.00 sec)这是为什么呢?两个数相减的结果显示0.01。可是用等号去比的时候,却显示不相等了?
mysql> select version();
+-----------+
| version() |
+-----------+
| 4.0.16 |
+-----------+
1 row in set (0.00 sec)
mysql> SELECT 1093663.00-1093662.99;
+-----------------------+
| 1093663.00-1093662.99 |
+-----------------------+
| 0.01 |
+-----------------------+
1 row in set (0.00 sec)mysql> SELECT 1093663.00-1093662.99=0.01;
+----------------------------+
| 1093663.00-1093662.99=0.01 |
+----------------------------+
| 0 |
+----------------------------+
1 row in set (0.00 sec)这是为什么呢?两个数相减的结果显示0.01。可是用等号去比的时候,却显示不相等了?
mysql> select version();
+-----------+
| version() |
+-----------+
| 4.0.16 |
+-----------+
1 row in set (0.00 sec)
+------------------------------+
| (1093663.00-1093662.99)=0.01 |
+------------------------------+
| 1 |
+------------------------------+
1 row in set (0.00 sec)mysql> select version();
+------------+
| version() |
+------------+
| 5.1.45-log |
+------------+
1 row in set (0.00 sec)在5.1.45的版本里再次尝试,是正常的。
可是不明白为什么在4.0.16里会那样设计?希望了解的同学帮忙解答下。
+------------------------------+
| (1093663.00-1093662.99)=0.01 |
+------------------------------+
| 0 |
+------------------------------+
1 row in set (0.00 sec)
还是这样
SELECT (1093663.00-1093662.99)=0.01;我这执行怎么就返回 '1'呢