小台的IT备忘录  
脑子越来越不好用,只能依靠烂笔头了~

最近接触金融计算的业务,其中涉及到人民币最小交易单位为分,所以需要有四舍五入、只入不舍、只舍不入三种末位保留算法的选择,以防忘记,记录一下

decimal serviceCharge = 0;
//四舍五入(默认的Round方法使用的四舍六入五保留的算法,所以得改为AwayFromZero,且保留两位小数)
serviceCharge = Math.Round(serviceCharge, 2, MidpointRounding.AwayFromZero);
//只入不舍(默认计算保留到整数位,所以需要乘100)
serviceCharge = (Math.Ceiling(serviceCharge * 100) / 100);
//只舍不入(默认计算保留到整数位,所以需要乘100)
serviceCharge = (Math.Floor(serviceCharge * 100) / 100);

 

posted on 2017-03-07 16:05  taiyonghai  阅读(3038)  评论(0编辑  收藏  举报