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));
}
/// <summary>
/// 获取价格相差
/// </summary>
/// <param name="firstPrice">价格1</param>
/// <param name="sencondPrice">价格2</param>
/// <returns>价格差</returns>
public static decimal GetDiffPrice(decimal firstPrice, decimal sencondPrice)
{
return firstPrice - sencondPrice;
}
/// <summary>
/// 获取价格差百分比
/// </summary>
/// <param name="firstPrice">价格1</param>
/// <param name="sencondPrice">价格2</param>
/// <returns>价格差百分比</returns>
public static decimal GetPercentDiffPrice(decimal firstPrice, decimal sencondPrice)
{
if (sencondPrice == 0)
return 0;
return MathHelper.Dot2((GetDiffPrice(firstPrice, sencondPrice) / sencondPrice) * 100);
}
/// <summary>
/// 将小数值按指定的小数位数截位
/// </summary>
/// <param name="value">要截位的小数</param>
/// <param name="length">小数位数,s大于等于0,小于等于28</param>
/// <returns></returns>
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;
}
/// <summary>
/// 将小数值按指定的小数位数进位(大于0进位)
/// </summary>
/// <param name="value">要进位的小数</param>
/// <param name="length">小数位数,s大于等于0,小于等于28</param>
/// <returns></returns>
public static decimal ToCeiled(decimal value, int length)
{
decimal sp = Convert.ToDecimal(Math.Pow(10, length));
return Math.Ceiling(value * sp) / sp;
}
}
//csharp/7022