#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;
}
}
}