當前位置:編程學習大全網 - 源碼下載 - MySQL文檔說`decimal` 的最大位數是 `65`,什麽意思?

MySQL文檔說`decimal` 的最大位數是 `65`,什麽意思?

第壹次看到decimal(m,d)壹頭霧水,知道肯定是個範圍,但是不知道範圍的規則,看了壹些文章發現說的都不是很明白,於是去官網看了下。

大概意思是這樣的:

decimal(m,d)

m是數字的最大位數,他的範圍是從1-65;

d是小數點後的位數,他的範圍是0-30,並且不能大於m。

如果m被省略了,那麽m的值默認為10,

如果d被省略了,那麽d的值默認為0.

舉例表示:

1、decimal(5,2) 所指代的範圍是-999.99~999.99 數字的最大位數是5位,小數點右側是2位,即有兩位小數。

2、decimal(7,6)所指代的範圍是-9.999999~9.999999 數字的最大位數是7位,小數點右側是6位,即有六位小數。

字的位數和所占字節數,有以下對應表:

小數點左側位數

數據結構所占的字節數

1–2 1

3–4 2

5–6 3

7–9 4

舉例表示:

decimal(18,9)小數位左右各為9位數,此數據所占以上表格即為4字節整數位,4字節小數位;

decimal(20,6)整數位為14位,小數位位6位,此數據需要4個字節給整數位的9位和3字節給另外的5位整數,另外小數位需要3個字節,總***是4+3+3 = 11個字節。

decimal不能夠存儲以“+”、“-”和“0”開頭的數據,如果是“+”開頭momo默認存為正數,而“-”開頭則不存儲

具體的對decimal的定義,可以在mysql源碼中的strings/decimal.c文件中的decimal2bin()函數查看。

  • 上一篇:昆明哪些地方可以進行免費的釣魚?
  • 下一篇:通用操作系統的發展歷史、現狀、趨勢
  • copyright 2024編程學習大全網