如果在数据库用的float类型存数据
在程序里面Decimal接受,会是填的什么数据保存什么数据
但是如果在数据库里面用numeric(18,2)存数据,在程序里面用ToDecimal
接受,会添加小数,可以在显示的时候取小数
如果Decimal没有给小数,对于数据库使用DECIMAL没有给小数,会自动四舍五入
建议改数据类型为nvarchar(20),想填的数据是多少就是多少)
如果是vchar会导致定数,不足会自动填充会有空字符问题
数据库里的 float momey 类型,都会精确到多位小数。但有时候 我们不需要那么精确,例如,只精确到两位有效数字。解决:
1. 使用 Round() 函数,如 Round(@num,2) 参数 2 表示 保留两位有效数字。
2. 更好的方法是使用 Convert(decimal(18,2),@num) 实现转换,decimal(18,2) 指定要保留的有效数字。
这两个方法有一点不同:使用 Round() 函数,如果 @num 是常数,如 Round(2.3344,2) 则 会在把有效数字后面的 变为0 ,成 2.3300。但 Convert() 函数就不会。
新闻热点
疑难解答