mysql中支援浮點數的型別有float、double和decimal型別,decimal 型別不同於float和double,decimal 實際是以串存放的。decimal 可能的最大取值範圍與double 一樣,但是其有效的取值範圍由m 和d 的值決定。如果改變m 而固定d,則其取值範圍將隨m 的變大而變大。
對於精度比較高的東西,比如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) 的最大值為9999.99,因為有7 個位元組可用。
所以m 與d 是影響decimal(m, d) 取值範圍的關鍵
型別說明 取值範圍(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
給定的decimal 型別的取值範圍取決於mysql資料型別的版本。對於mysql3.23 以前的版本,decimal(m, d) 列的每個值占用m 位元組,而符號(如果需要)和小數點包括在m 位元組中。因此,型別為decimal(5, 2) 的列,其取值範圍為-9.99 到99.99,因為它們覆蓋了所有可能的5 個字元的值。
在mysql 3.23 及以後的版本中,decimal(m, d) 的取值範圍等於早期版本中的decimal(m + 2, d) 的取值範圍。
結論:
當數值在其取值範圍之內,小數字多了,則直接截斷小數字。
若數值在其取值範圍之外,則用最大(小)值對其填充。
資料型別基礎資料型別
資料型別 基礎型別 除八大基礎型別其他的都是引用型資料型別 引用資料型別 基礎資料型別 整型 byte 佔乙個位元組,範圍 128 127 short 佔兩個位元組,範圍 32768 32767 int 最常用 佔四個位元組,範圍 2147483648 2147483647 long 佔八個位元組 ...
資料型別 基本資料型別和引用資料型別
一.分類 1,五種簡單資料型別 基本資料型別 number,string,boolean,null,undefined,新增symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。1 undefined 宣告的變...
SQL 資料型別 MySQL 資料型別
在 mysql 中,有三種主要的型別 文字 數字和日期 時間型別。資料型別 描述char size 儲存固定長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的長度。最多 255 個字元。varchar size 儲存可變長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的最大長度。...