如果在數(shù)據(jù)庫用的float類型存數(shù)據(jù)
在程序里面Decimal接受,會(huì)是填的什么數(shù)據(jù)保存什么數(shù)據(jù)
但是如果在數(shù)據(jù)庫里面用numeric(18,2)存數(shù)據(jù),在程序里面用ToDecimal
接受,會(huì)添加小數(shù),可以在顯示的時(shí)候取小數(shù)
如果Decimal沒有給小數(shù),對(duì)于數(shù)據(jù)庫使用DECIMAL沒有給小數(shù),會(huì)自動(dòng)四舍五入
建議改數(shù)據(jù)類型為nvarchar(20),想填的數(shù)據(jù)是多少就是多少)
如果是vchar會(huì)導(dǎo)致定數(shù),不足會(huì)自動(dòng)填充會(huì)有空字符問題
數(shù)據(jù)庫里的 float momey 類型,都會(huì)精確到多位小數(shù)。但有時(shí)候 我們不需要那么精確,例如,只精確到兩位有效數(shù)字。解決:
1. 使用 Round() 函數(shù),如 Round(@num,2) 參數(shù) 2 表示 保留兩位有效數(shù)字。
2. 更好的方法是使用 Convert(decimal(18,2),@num) 實(shí)現(xiàn)轉(zhuǎn)換,decimal(18,2) 指定要保留的有效數(shù)字。
這兩個(gè)方法有一點(diǎn)不同:使用 Round() 函數(shù),如果 @num 是常數(shù),如 Round(2.3344,2) 則 會(huì)在把有效數(shù)字后面的 變?yōu)? ,成 2.3300。但 Convert() 函數(shù)就不會(huì)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注