無論MYSQL還是SQL SERVER,用float類型存放0.55是不會出問題的,顯示為1可能是相關(guān)的客戶端軟件顯示時候的寬度不夠,自動進行了四舍五入而已,你可以使用MYSQL的命令用SQL顯示一下,結(jié)果有誤差,但是值是對的,比如可能顯示0.55000000001或者0.54999999999
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司,提供網(wǎng)站設(shè)計制作、成都做網(wǎng)站,網(wǎng)頁設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
一,數(shù)值類型保留小數(shù)點后兩個0
在存入數(shù)據(jù)時,應(yīng)客戶需求數(shù)值類型,比如錢數(shù),分?jǐn)?shù)等等需要精確到小數(shù)點后幾位。
800存入時顯示為800.00
方法:在建表時直接定義此數(shù)值的類型為float,double或decimal類型
例如:
1 create tablenum(2 shuzi float(4,2),3 shuzi2 double(4,2),4 shuzi3 decimal(4,2)5 );
類型(a,b):a指定指定小數(shù)點左邊和右邊可以存儲的十進制數(shù)字的最大個數(shù),
b指定小數(shù)點右邊可以存儲的十進制數(shù)字的最大個數(shù),小數(shù)位數(shù)必須是從 0 到 a之間的值。默認(rèn)小數(shù)位數(shù)是 0。
此時在插入數(shù)據(jù)
1 insert into num values(22,33,44);
那么此時顯示的數(shù)據(jù)就是:
22.00 33.00 44.00
無需手動輸入00.
最后說一下
float:浮點型,含字節(jié)數(shù)為4,32bit,數(shù)值范圍為-3.4E38~3.4E38(7個有效位 對最后一位數(shù)四舍五入)
double:雙精度實型,含字節(jié)數(shù)為8,64bit數(shù)值范圍-1.7E308~1.7E308(15個有效位 對最后一位數(shù)四舍五入 float和double的相乘操作,數(shù)字溢出不會報錯會有精度的損失)
decimal:數(shù)字型,128bit,不存在精度損失,常用于銀行帳目計算。(28個有效位 當(dāng)對decimal類型進行操作時,數(shù)值會因溢出而報錯)
二,在存入數(shù)據(jù)時存入整數(shù),select 查詢時取出帶小數(shù).00的數(shù)據(jù)
同樣應(yīng)客戶需求,可能僅僅是因為美觀而進行的操作
在定義時定義的就為整形或者其它的數(shù)值類型那么在取數(shù)據(jù)時可以使用round()函數(shù)
見表并定義
1 create tablenum(2 shuzi int
3 );
插入數(shù)據(jù)
insert into num values(22);
取出數(shù)據(jù)
select round(shuzi,2) fromnum;
或truncate(shuzi,2)
此時顯示為22.00
要求精度高就用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位,對最后一位四舍五入。
注:當(dāng)對decimal類型進行操作時,數(shù)值會因溢出而報錯。
帶小數(shù)的字段可以用以下: float,double,decimal看你的數(shù)值范圍選擇。