如果在數(shù)據(jù)庫用的float類型存數(shù)據(jù)
在程序里面Decimal接受,會是填的什么數(shù)據(jù)保存什么數(shù)據(jù)
但是如果在數(shù)據(jù)庫里面用numeric(18,2)存數(shù)據(jù),在程序里面用ToDecimal
接受,會添加小數(shù),可以在顯示的時候取小數(shù)
如果Decimal沒有給小數(shù),對于數(shù)據(jù)庫使用DECIMAL沒有給小數(shù),會自動四舍五入
建議改數(shù)據(jù)類型為nvarchar(20),想填的數(shù)據(jù)是多少就是多少)
如果是vchar會導(dǎo)致定數(shù),不足會自動填充會有空字符問題
數(shù)據(jù)庫里的 float momey 類型,都會精確到多位小數(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ù)字。
這兩個方法有一點(diǎn)不同:使用 Round() 函數(shù),如果 @num 是常數(shù),如 Round(2.3344,2) 則 會在把有效數(shù)字后面的 變?yōu)? ,成 2.3300。但 Convert() 函數(shù)就不會。
新聞熱點(diǎn)
疑難解答