#region using System; #endregion namespace CSFrameworkV5.Common { /// /// 四舍五入类 /// public class MathRound { /// /// 实现数据的四舍五入法 /// /// 要进行处理的数据 /// 保留的小数位数 /// 四舍五入后的结果 public static double Round(double v, int x) { var isNegative = false; //如果是负数 if (v < 0) { isNegative = true; v = -v; } var IValue = 1; for (var i = 1; i <= x; i++) IValue = IValue * 10; var Int = Math.Round(v * IValue + 0.5, 0); v = Int / IValue; if (isNegative) v = -v; return v; } /// /// 实现数据的进一发 /// /// 要进行处理的数据 /// 保留的小数位数 /// 进一的结果 public double RoundIn(double v, int x) { //如果是负数 if (v < 0) v = -v; var IValue = 1; for (var i = 1; i <= x + 1; i++) IValue = IValue * 10; var Int = Math.Round(v + 5.00 / IValue, x, MidpointRounding.AwayFromZero); return Int; } /// /// 实现数据的舍去发 /// /// 要进行处理的数据 /// 保留的小数位数 /// 舍去后的结果 public static double RoundRej(double v, int x) { //v = 1.224; var part = v.ToStringEx().Split('.'); if (part.Length == 1) return v; part[1] = part[1].PadRight(x, '0').Substring(0, x); var dd = double.Parse(part[0] + "." + part[1]); return dd; } } }