SQL Server sql保留两位小数+四舍五入

问题:

而数据库实际上写入的数据分别为:

 

 

问题分析:

不管是总汇总数据还是条目汇总数据都是根据,每一条出库数据,是以单价为组,单价*总面积的和得到每条细目的价格或者是总价格。在SQL处理的过程中计算截取了两位,造成了有些数据直接截掉,没有按照四舍五入的规则,出现了0.01的误差。SQL计算默认保留精度。

知识补充:

处理数据的时候要经常用到四舍五入问题,这里记录一下刚从网上搜到的方法

1. ROUND(该函数,只是负责四舍五入到两位小数,但是不负责截断 只留两位小数,例如下例:)

关于ROUND函数,我们平常理解为4舍5入,如:

print ROUND(13.145, 2);

结果为:13.150
 

2. 使用转换类型,才能达到保留两位小数位的目的: 

select cast(13.145 as   decimal(10,   2))

结果为:13.15

 

posted @ 2020-04-08 16:56  Kaspar_Choo  阅读(4295)  评论(0编辑  收藏  举报