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
作者:Kaspar_Choo
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。