public class MathHelper { public static decimal Dot3(decimal d) { return decimal.Parse(String.Format("{0:0.###}", d)); } public static decimal Dot2(decimal d) { return decimal.Parse(String.Format("{0:0.##}", d)); } public static decimal Dot4(decimal d) { return decimal.Parse(String.Format("{0:0.####}", d)); } public static decimal Dot6(decimal d) { return decimal.Parse(String.Format("{0:0.######}", d)); } /// /// 获取价格相差 /// /// 价格1 /// 价格2 /// 价格差 public static decimal GetDiffPrice(decimal firstPrice, decimal sencondPrice) { return firstPrice - sencondPrice; } /// /// 获取价格差百分比 /// /// 价格1 /// 价格2 /// 价格差百分比 public static decimal GetPercentDiffPrice(decimal firstPrice, decimal sencondPrice) { if (sencondPrice == 0) return 0; return MathHelper.Dot2((GetDiffPrice(firstPrice, sencondPrice) / sencondPrice) * 100); } /// /// 将小数值按指定的小数位数截位 /// /// 要截位的小数 /// 小数位数,s大于等于0,小于等于28 /// public static decimal ToFixed(decimal value, int length) { decimal sp = Convert.ToDecimal(Math.Pow(10, length)); return Math.Truncate(value) + Math.Floor((value - Math.Truncate(value)) * sp) / sp; } /// /// 将小数值按指定的小数位数进位(大于0进位) /// /// 要进位的小数 /// 小数位数,s大于等于0,小于等于28 /// public static decimal ToCeiled(decimal value, int length) { decimal sp = Convert.ToDecimal(Math.Pow(10, length)); return Math.Ceiling(value * sp) / sp; } } //csharp/7022