SQL Server数据类型为numeric或decimal的字段,会自动四舍五入

问题:

发现total数据是两位,本来以为数据是程序写入位数不对,经排查,向数据库写入数据的确为3位。

解决

原字段类型decimal(18, 2)修改为decimal(18, 3)

总结

数据类型为numeric或decimal的字段,不用担心会小数点位数会溢出,因为会自动四舍五入。(原来以为位数超出会直接截断)。

但是如果大于最大精度就会报错,

比如图中的NUMERIC(38, 4)最大精度是38,那整数位数和小数位数的总长度最大只能为38位,超过了就会报错。

 

posted @ 2020-04-23 10:39  Kaspar_Choo  阅读(2044)  评论(0编辑  收藏  举报