round返回數(shù)字表達式并四舍五入為指定的長度或精度。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供淳安網(wǎng)站建設、淳安做網(wǎng)站、淳安網(wǎng)站設計、淳安網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、淳安企業(yè)網(wǎng)站模板建站服務,10多年淳安做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
顯示的界面上要求只保留到小數(shù)點后4位,發(fā)現(xiàn)round(表達式,4,1)可以截斷小數(shù)點4位后的數(shù)字
如果寫(round,4)表示對小數(shù)點后4位四舍五入,但不截斷多的0
先將分子或分母或兩個都轉(zhuǎn)化成8小數(shù)精度以上的類型,decimal,numeric,float 都可以。
然后做除法計算,將計算結(jié)果轉(zhuǎn)化為8位小數(shù)。
select convert(decimal(18,8), convert(decimal(18,8),1)/3)
select convert(decimal(18,8), 1/convert(decimal(18,8),3))
select CONVERT(decimal(18,8), convert(float,1)/3)
select CONVERT(decimal(18,8), 1/convert(float,3))
寫個函數(shù)就行了 很簡單 主題代碼如下 可在sqlserver 直接運行
declare @aaa varchar(50)='3213.434'
if (substring(@aaa ,charindex('.',@aaa)+1,LEN(@aaa)-charindex('.',@aaa)-1) 3)
begin
print cast( cast(@aaa as numeric(18,3)) as varchar(50))
end
else
print @aaa
直接運行看打印的結(jié)果, 這里是直接截取 如果要四舍五入 用round 函數(shù)。 改成函數(shù)應該不用我說了吧 加個殼 把 print 改成 return 返回出去