就是你插入數(shù)據(jù)時會保存到小數(shù)點后幾位。比如插入數(shù)據(jù)(double) 0.1111,小數(shù)點那填的是2 的會最后保存的是0.11.
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、鎮(zhèn)寧網(wǎng)站維護、網(wǎng)站推廣。
char是一種固定長度的類型,varchar則是一種可變長度的類型,它們的區(qū)別是:
char(M)類型的數(shù)據(jù)列里,每個值都占用M個字節(jié),如果某個長度小于M,MySQL就會在它的右邊用空格字符補足.(在檢索操作中那些填補出來的空格字符將被去掉)在varchar(M)類型的數(shù)據(jù)列里,每個值只占用剛好夠用的字節(jié)再加上一個用來記錄其長度的字節(jié)(即總長度為L+1字節(jié))
要求精度高就用decimal
審題錯了...
簡單寫下區(qū)別:
float:浮點型,含字節(jié)數(shù)為4,32bit,數(shù)值范圍為-3.4E38~3.4E38(7個有效位)
double:雙精度實型,含字節(jié)數(shù)為8,64bit數(shù)值范圍-1.7E308~1.7E308(15個有效位)
decimal:數(shù)字型,128bit,不存在精度損失,常用于銀行帳目計算。(28個有效位)
numberic
===
decimal
float
f
=
345.98756f;//結(jié)果顯示為345.9876,只顯示7個有效位,對最后一位數(shù)四舍五入。
double
d=345.975423578631442d;//結(jié)果顯示為345.975423578631,只顯示15個有效位,對最后一位四舍五入。
注:float和double的相乘操作,數(shù)字溢出不會報錯,會有精度的損失。
decimal
dd=345.545454879.....//可以支持28位,對最后一位四舍五入。
注:當對decimal類型進行操作時,數(shù)值會因溢出而報錯。
DOUBLE 8 個字節(jié)
DECIMAL(M,D) M字節(jié)(D+2 , 如果M D)
NUMERIC(M,D)
這都支持小數(shù)的
可以在建表的時候限定小數(shù)點的長度,例如decimal(5,2),后面的2就是2位的意思。
如果表已經(jīng)建好,可以在查詢語句中用函數(shù) round(X,2) 轉(zhuǎn)換,X為字段,后面的數(shù)字為長度,你要幾位就填幾。