在工作中一般在计算商品价格的时候都是精确到分后面的数字就不在需要了
一, 全入到分
一般计算平台利润都是这样算 因为直接进一发 进的那一步一般都是由采购或者供出 让自己赚
比如1.215455 直接 进一法 结果就是 1.22
/// <summary> /// 全入到分 /// </summary> /// <param name="decimal">数字</param> /// <returns>结果</returns> public static decimal AllInPenny(decimal @decimal) { return Math.Ceiling(@decimal * 100) / 100; }
二, 全舍到分
一般计算供应商货款的都是这样算 因为舍掉的部分就有自己赚了
比如1.215455 直接把分后面的小数舍掉 结果就是1.21
/// <summary> /// 全舍到分 /// </summary> /// <param name="decimal">数字</param> /// <returns>结果</returns> public static decimal AllAbandonPenny(decimal @decimal) { return Math.Floor(@decimal * 100) / 100; }
三 ,四舍五入(银行家算法)
一般在计算第三方手续费是用这个
财付通就是用这个算法
/// <summary> /// 四舍五入到分(银行家算法) /// </summary> /// <param name="decimal">数字</param> /// <returns>结果</returns> public static decimal Rounding(decimal @decimal) { return Math.Round(@decimal, 2); }
四,四舍五入(中国式)
一般在计算第三方手续费是用这个
支付宝就是用这个算法
/// <summary> /// 四舍五入到分(中国式四舍五入) /// </summary> /// <param name="decimal">数字</param> /// <returns>结果</returns> public static decimal RoundingCn(decimal @decimal) { return Math.Round(@decimal, 2, MidpointRounding.AwayFromZero); }
我对这个银行家算法还是不太清楚 如果想要了解的更清楚请自行百度