在mysql中,價格用“DECIMAL”類型。Decimal是專門為財務(wù)相關(guān)問題設(shè)計的數(shù)據(jù)類型,它實際上是以字符串的形式存放的,可在定義時劃定整數(shù)部分以及小數(shù)部分的位數(shù);在對精度要求比較高時(如貨幣、科學(xué)數(shù)據(jù)),用DECIMAL類型比較好。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
在mysql中,價格用“DECIMAL”類型。
Decimal為專門為財務(wù)相關(guān)問題設(shè)計的數(shù)據(jù)類型。在 MySQL 中,定點數(shù)以字符串形式存儲,在對精度要求比較高的時候(如貨幣、科學(xué)數(shù)據(jù)),使用 DECIMAL 的類型比較好。
Decimal為SQL Server、MySql等數(shù)據(jù)庫的一種數(shù)據(jù)類型,不屬于浮點數(shù)類型,可以在定義時劃定整數(shù)部分以及小數(shù)部分的位數(shù)。使用精確小數(shù)類型不僅能夠保證數(shù)據(jù)計算更為精確,還可以節(jié)省儲存空間,例如百分比使用decimal(4,2)即可。存儲數(shù)據(jù)范圍是:-10^38~10^38-1 的固定精度和小數(shù)位的數(shù)字。一個decimal類型的數(shù)據(jù)占用了2~17個字節(jié)。
語法:
decimal[ (p[ , s] )]
-
p (有效位數(shù)):可儲存的最大十進(jìn)位數(shù)總數(shù),小數(shù)點左右兩側(cè)都包括在內(nèi)。有效位數(shù)必須是 1 至最大有效位數(shù) 38 之間的值。預(yù)設(shè)有效位數(shù)是 18。
-
s (小數(shù)位數(shù)):小數(shù)點右側(cè)所能儲存的最大十進(jìn)位數(shù)。小數(shù)位數(shù)必須是從 0 到 p 的值。只有在指定了有效位數(shù)時,才能指定小數(shù)位數(shù)。預(yù)設(shè)小數(shù)位數(shù)是 0;因此,0 <= s <= p。最大儲存體大小會隨著有效位數(shù)而不同。
Decimal(n,m)
表示數(shù)值中共有n位數(shù),其中整數(shù)n-m位,小數(shù)m位。
例:decimal(10,6)
,數(shù)值中共有10位數(shù),其中整數(shù)占4位,小數(shù)占6位。
例:decimal(2,1)
,此時,插入數(shù)據(jù)“12.3”、“12”等會出現(xiàn)“數(shù)據(jù)溢出錯誤”的異常;插入“1.23”或“1.2345…”會自動四舍五入成“1.2”;插入“2”會自動補成“2.0”,以確保2位的有效長度,其中包含1位小數(shù)。
上面說到插入“2”會自動補成“2.0” 但是在實際 操作中不會自動填補。
【