SQL Server数据类型为numeric或decimal的字段,会自动四舍五入
问题:
发现total数据是两位,本来以为数据是程序写入位数不对,经排查,向数据库写入数据的确为3位。
解决
原字段类型decimal(18, 2)修改为decimal(18, 3)
总结
数据类型为numeric或decimal的字段,不用担心会小数点位数会溢出,因为会自动四舍五入。(原来以为位数超出会直接截断)。
但是如果大于最大精度就会报错,
比如图中的NUMERIC(38, 4)最大精度是38,那整数位数和小数位数的总长度最大只能为38位,超过了就会报错。
作者:Kaspar_Choo
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。