mysql 浮点类_MySQL浮点类型总结
MySQL支持的三個浮點類型是 FLOAT、DOUBLE 和 DECIMAL 類型。FLOAT 數值類型用于表示單精度浮點數值,而 DOUBLE 數值類型用于表示雙精度浮點數值。
與整數類型一樣,這些類型也帶有附加參數:一個顯示寬度指示器和一個小數點指示器。例如,語句FLOAT (5,2)規定顯示的值不會超過5位數字,小數點后面帶有2位數字。看下面的示范舉例:
mysql> insert into data values (876.90);
Query OK, 1 row affected (0.03 sec)
mysql> insert into data values (-5.2);
Query OK, 1 row affected (0.03 sec)
mysql> insert into data values (-12345.789);
ERROR 1264 (22003): Out of range value for column ‘price’ at row 1
mysql> insert into data values (-1234.789);
ERROR 1264 (22003): Out of range value for column ‘price’ at row 1
對于小數點后面的數字個數超過了允許的數目的值,系統會自動將它四舍五入為最接近它的值,然后插入它。下面的例子演示了這一點:
mysql> insert into data values (-14.789);
Query OK, 1 row affected (0.03 sec)
mysql> insert into data values (-141.789);
Query OK, 1 row affected (0.03 sec)
mysql> select * from data;
+———+
| price |
+———+
| 13.60 |
| 876.90 |
| -5.20 |
| -14.79 |
| -141.79 |
+———+
5 rows in set (0.00 sec)
DECIMAL 數據類型用于要求非常高的精確度的計算中,這些類型允許指定數值的精確度和計數方法作為選擇參數。精確度在這里是指為這個值保存的有效數字的總個數,而計數方法表示小數點后數字的個數。例如,語句DECIMAL (5,2)規定了存儲的值將不會超過5位數字,開且小數點后面有2位數字。
1.首先,對于精度比較高的東西,比如money,我會用decimal類型,不會考慮float,double,因為他們容易產生誤差,numeric和decimal同義,numeric將自動轉成decimal。
DECIMAL從MySQL 5.1引入,列的聲明語法是DECIMAL(M,D)。在MySQL 5.1中,參量的取值范圍如下:
M是數字的最大數(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254),M 的默認值是10。
D是小數點右側數字的數目(標度)。其范圍是0~30,但不得超過M。
說明:float占4個字節,double占8個字節,decimail(M,D)占M+2個字節。
如DECIMAL(5,2) 的最大值為9 9 9 9 . 9 9,因為有7 個字節可用。
M 與D 對DECIMAL(M, D) 取值范圍的影響
類型說明取值范圍(MySQL < 3.23)取值范圍(MySQL >= 3.23)
MySQL < 3.23 MySQL >=3.23
DECIMAL(4, 1) -9.9 到 99.9 -999.9 到 9999.9
DECIMAL(5,1) -99.9 到 999.9 -9999.9 到 99999.9
DECIMAL(6,1) -999.9 到 9999.9 -99999.9 到 999999.9
DECIMAL(6,2) -99.99 到 999.99 -9999.99 到 99999.99
DECIMAL(6,3) -9.999 到 99.999 -999.999 到 9999.999
# 在MySQL 3.23 及以后的版本中,DECIMAL(M, D) 的取值范圍等于早期版本中的DECIMAL(M + 2, D) 的取值范圍。
結論:
當數值在其取值范圍之內,小數位多了,則直接截斷小數位。
若數值在其取值范圍之外,則用最大(小)值對其填充。
MySQL數值類型——FLOAT、DOUBLE和DECIMAL類型
MySQL在內部把DECIMAL數據類型存儲為字符串,更精確地保留它們的值。
忽略DECIMAL數據類型的精確度和計數方法修飾符將會使MySQL把所有標識為這個類型的字段的精確度默認為10,計算方法默認為0:
UNSIGNED和ZEROFILL修飾符也可以被FLOAT、DECIMAL和DOUBLE數據類型接受,它們的結果和前一節中描述的一樣。
總結
以上是生活随笔為你收集整理的mysql 浮点类_MySQL浮点类型总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css translate 坐标,CSS
- 下一篇: MySQL中show profile详解