- 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;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/050820134967.html
来源: http://www.codesnippet.cn/detail/050820134967.html