程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql 中浮點型與定點型記錄

mysql 中浮點型與定點型記錄

編輯:MySQL綜合教程

mysql 中浮點型與定點型記錄


為了能夠引起大家的重視,在介紹浮點數與定點數以前先讓大家看一個例子:
mysql> CREATE TABLE test (c1 float(10,2),c2 decimal(10,2));

Query OK, 0 rows affected (0.22 sec)

mysql> insert into test values(131072.32,131072.32);

Query OK, 1 row affected (0.02 sec)

mysql> insert into test values (999998.02, 999998.02);
Query OK, 1 row affected (0.02 sec)

mysql> select * from test;

+-----------+-----------+

| c1  | c2  |

+-----------+-----------+

| 131072.31 | 131072.32 |

| 999998.00 | 999998.02 |

+-----------+-----------+

1 row in set (0.00 sec)
  

 

  從上面的例子中我們看到c1列的值由131072.32變成了131072.31;999998.02變成了999998.00,這就是浮點數的不精確性造成的。   在mysql中float、double(或real)是浮點數,decimal(或numberic)是定點數。   浮點數相對於定點數的優點是在長度一定的情況下,浮點數能夠表示更大的數據范圍;它的缺點是會引起精度問題。   在今後關於浮點數和定點數的應用中,大家要記住以下幾點:   1、浮點數存在誤差問題;   2、對貨幣等對精度敏感的數據,應該用定點數表示或存儲;   3、編程中,如果用到浮點數,要特別注意誤差問題,並盡量避免做浮點數比較;   4、要注意浮點數中一些特殊值的處理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved