溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL中decimal如何使用

發(fā)布時間:2021-07-24 16:21:22 來源:億速云 閱讀:226 作者:Leah 欄目:數(shù)據(jù)庫

MySQL中decimal如何使用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

  decimal介紹

  在設(shè)計數(shù)據(jù)庫時,如果你要存儲價格之類帶小數(shù)點的數(shù)據(jù),們一般比如價格,我會用decimal類型,不會考慮float,double,因為他們?nèi)菀桩a(chǎn)生誤差,numeric和decimal同義,numeric將自動轉(zhuǎn)成decimal。

  ps: 至于為什么會產(chǎn)生誤差,請看我的另外一篇文章: php中浮點數(shù)計算問題。

  decimal用法

  DECIMAL從MySQL 5.1引入,列的聲明語法是DECIMAL(M,D)。

  在MySQL 5.1中,參量的取值范圍如下:

  ·M是數(shù)字的最大數(shù)(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254),M 的默認值是10。

  ·D是小數(shù)點右側(cè)數(shù)字的數(shù)目(標(biāo)度)。其范圍是0~30,但不得超過M。

  說明:float占4個字節(jié),double占8個字節(jié),decimail(M,D)占M+2個字節(jié)。

  如DECIMAL(5,2) 的最大值為9999.99,因為有7 個字節(jié)可用。

  首先,對于精度比較高的東西,比如money,我會用decimal類型,不會考慮float,double,因為他們?nèi)菀桩a(chǎn)生誤差,numeric和decimal同義,numeric將自動轉(zhuǎn)成decimal。

  DECIMAL從MySQL 5.1引入,列的聲明語法是DECIMAL(M,D)。在MySQL 5.1中,參量的取值范圍如下:

  ·M是數(shù)字的最大數(shù)(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254),M 的默認值是10。

  ·D是小數(shù)點右側(cè)數(shù)字的數(shù)目(標(biāo)度)。其范圍是0~30,但不得超過M。

  說明:float占4個字節(jié),double占8個字節(jié),decimail(M,D)占M+2個字節(jié)。

  如DECIMAL(5,2) 的最大值為9 9 9 9 . 9 9,因為有7 個字節(jié)可用。

  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) 的取值范圍。

  結(jié)論

  1. 當(dāng)數(shù)值在其取值范圍之內(nèi),小數(shù)位多了,則小數(shù)會四舍五入。

  2. 若數(shù)值在其取值范圍之外,則用最大(小)值對其填充。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI