首頁  >  文章  >  資料庫  >  decimal是什麼類型

decimal是什麼類型

青灯夜游
青灯夜游原創
2021-03-18 16:03:0573406瀏覽

decimal是MySQL中存在的精確資料類型,語法格式「DECIMAL(M,D)」。其中,M是數字的最大數(精度),其範圍為“1~65”,預設值是10;D是小數點右側數字的數目(標度),其範圍是“0~30”,但不得超過M。

decimal是什麼類型

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

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#IM# (6,1) -999.9 到9999.9 -99999.9 到999999.9

DECIMAL(6,2) -99.99 到999.99 -9999.99 到99999.99#AL#. 999.999 到9999.999

(推薦教學:

mysql影片教學

給定的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) 的取值範圍。

結論:

當數值在其取值範圍之內,小數位多了,則直接截斷小數位。

若數值在其取值範圍之外,則用最大(小)值對其填入。

更多程式相關知識,請造訪:

程式設計影片

! !

以上是decimal是什麼類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn