Mysql 中價格用什麼數據類型最佳?

Mysql 中價格用什麼數據類型最佳?

答案是:DECIMAL

Decimal為專門為財務相關問題設計的數據類型。

Decimal為SQL Server、MySql等數據庫的一種數據類型,不屬於浮點數類型,可以在定義時劃定整數部分以及小數部分的位數。使用精確小數類型不僅能夠保證數據計算更為精確,還可以節省儲存空間,例如百分比使用decimal(4,2)即可。存儲數據範圍是:-10^38~10^38-1 的固定精度和小數位的數字。一個decimal類型的數據佔用了2~17個字節。

位數

decimal[ (p[ , s] )]

p (有效位數)

可儲存的最大十進位數總數,小數點左右兩側都包括在內。有效位數必須是 1 至最大有效位數 38 之間的值。預設有效位數是 18。

s (小數位數)

小數點右側所能儲存的最大十進位數。小數位數必須是從 0 到 p 的值。只有在指定了有效位數時,才能指定小數位數。預設小數位數是 0;因此,0 <= s <= p。最大儲存體大小會隨著有效位數而不同。

Decimal(n,m)表示數值中共有n位數,其中整數n-m位,小數m位。例:decimal(10,6),數值中共有10位數,其中整數佔4位,小數佔6位。

例:decimal(2,1),此時,插入數據“12.3”、“12”等會出現“數據溢出錯誤”的異常;插入“1.23”或“1.2345...”會自動四捨五入成“1.2”;插入“2”會自動補成“2.0”,以確保2位的有效長度,其中包含1位小數。

上面說到 插入“2”會自動補成“2.0” 但是在實際 操作中不會自動填補。下面是我自己實現操作的截圖

Mysql 中價格用什麼數據類型最佳?

位數為 decimal(2,1)

Mysql 中價格用什麼數據類型最佳?

顯示的的數據沒有補零

但是當我把decimal的位數增加到15時 就會自動 補零了。請看下圖

Mysql 中價格用什麼數據類型最佳?

decimal(15,1)

Mysql 中價格用什麼數據類型最佳?

數據顯示是有自動補零的

如果大家知道是為什麼的話可以在評論中留言,謝謝大家閱讀。

打完收工

Mysql 中價格用什麼數據類型最佳?


分享到:


相關文章: