為了能夠引起大家的重視,在介紹浮點數與定點數以前先讓大家看乙個例子:
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、要注意浮點數中一些特殊值的處理。
浮點型與定點型(浮點數與定點數)
浮點型與定點型 浮點數與定點數 float與int,這兩個型別,仔細研究一下,這兩個型別就會發現為什麼有超級計算機誕生的必要了,以及提高計算機的計算能力真的是一件很偉大的事情,正式說下把,先來定點數,定點數就是小數點固定在乙個位置,如下圖 類似上面長條那樣,表示小數點時,只能固定乙個點,假設使用32...
黑猴子的家 mysql 浮點型 和 定點型
選擇資料型別的原則 1 選擇能儲存數值的越小型別越好 2 型別越簡單越好1 數值型總結 整型 特點1.根據所佔位元組或儲存的數值範圍分類 tinyint smallint mediumint int integer bigint 2.預設為有符號整型 3.如果超過型別的範圍,會報警告,插入臨界值 最...
MySQL的浮點型和定點型解析和案例演示
小數型 1 概述 浮點型和定點型 1 浮點數型別包括單精度浮點數 float型 和雙精度浮點數 double型 定點數型別就是decimal型。2 兩者區別 1 浮點型 小數點移動,精度有限,而且會丟失精度 系統自動四捨五入 4個位元組,最大8個數字 整數部分不能超出長度,但是小數部分可以超出長度 ...