下面的示例給出了一個解釋FLOAT如何在mySQL中工作的解釋嗎?我知道浮球是近似的,但真的,這樣的差異?而且只有9位數字,所以它不是溢出問題,不是嗎?mysql中的浮點精度問題
mysql> create table t(f FLOAT(15,2), db DOUBLE);
mysql> insert into t(f,db) VALUES (512659663, 512659663);
mysql> select * from t;
+--------------+-----------+
| f | db |
+--------------+-----------+
| 512659648.00 | 512659663 |
+--------------+-----------+
(MySQL的版本14.14 DISTRIB 44年5月1日,爲Win32(IA32)在Windows XP)
是否可以估計近似誤差?它取決於數字的大小,還是還有別的? – 2010-12-23 16:49:55
@ts:32位IEEE 754浮點數可以保存約7位精度的十進制數字; 64位的可以保存16位十進制數字。任何超過7位的數字都會遇到問題。 FLOAT(15,2)限定符比有效的更爲一廂情願; (15,2)基本上被忽略。 – 2010-12-23 17:03:23