最近接觸金融計算的業務,其中涉及到人民幣最小交易單位為分,所以需要有四舍五入、只入不舍、只舍不入三種末位保留算法的選擇,以防忘記,記錄一下
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);