|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
|
|
|
namespace JwKdsV.Core.Utils
|
|
|
{
|
|
|
public class DecimalUtils
|
|
|
{
|
|
|
|
|
|
public static int GetInt(object obj)
|
|
|
{
|
|
|
return GetInt(obj, 0);
|
|
|
}
|
|
|
|
|
|
public static int GetInt(object obj, int defaultValue)
|
|
|
{
|
|
|
int _value = defaultValue;
|
|
|
int.TryParse((obj != null ? obj.ToString() : defaultValue.ToString()), out _value);
|
|
|
return _value;
|
|
|
}
|
|
|
|
|
|
public static double GetDouble(object obj)
|
|
|
{
|
|
|
return GetDouble(obj, 0);
|
|
|
}
|
|
|
|
|
|
public static double GetDouble(object obj, double defaultValue)
|
|
|
{
|
|
|
double _value = defaultValue;
|
|
|
double.TryParse((obj != null ? obj.ToString() : defaultValue.ToString()), out _value);
|
|
|
return _value;
|
|
|
}
|
|
|
|
|
|
public static decimal GetDecimal(object obj)
|
|
|
{
|
|
|
return GetDecimal(obj, 0);
|
|
|
}
|
|
|
|
|
|
public static decimal GetDecimal(object obj, decimal defaultValue)
|
|
|
{
|
|
|
decimal _value = defaultValue;
|
|
|
decimal.TryParse((obj != null ? obj.ToString() : defaultValue.ToString()), out _value);
|
|
|
return _value;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 保留两位小数,四舍五入
|
|
|
/// </summary>
|
|
|
/// <param name="value"></param>
|
|
|
/// <returns></returns>
|
|
|
public static decimal Random(decimal value)
|
|
|
{
|
|
|
return Math.Round(value, Constant.POINTNUM, MidpointRounding.AwayFromZero);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 指定保存小数位数,四舍五入
|
|
|
/// </summary>
|
|
|
/// <param name="value"></param>
|
|
|
/// <param name="pointNum"></param>
|
|
|
/// <returns></returns>
|
|
|
public static decimal Random(decimal value, int pointNum)
|
|
|
{
|
|
|
return Math.Round(value, pointNum, MidpointRounding.AwayFromZero);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 指定位数的数字格式化,size支持0、1、2
|
|
|
/// </summary>
|
|
|
/// <param name="size"></param>
|
|
|
/// <param name="num"></param>
|
|
|
/// <returns></returns>
|
|
|
public static string FormatDataSwitch(decimal num, int size)
|
|
|
{
|
|
|
string result = "";
|
|
|
switch (size)
|
|
|
{
|
|
|
case 0:
|
|
|
result = FormatDataNoPoint(num);
|
|
|
break;
|
|
|
case 1:
|
|
|
result = FormatDataOnePoint(num);
|
|
|
break;
|
|
|
case 2:
|
|
|
result = FormatDataDoublePoint(num);
|
|
|
break;
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 格式化为无小数
|
|
|
/// </summary>
|
|
|
/// <param name="num"></param>
|
|
|
/// <returns></returns>
|
|
|
public static string FormatDataNoPoint(decimal num)
|
|
|
{
|
|
|
return FormatData(num, "0.##");
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 格式化为1位小数
|
|
|
/// </summary>
|
|
|
/// <param name="num"></param>
|
|
|
/// <returns></returns>
|
|
|
public static string FormatDataOnePoint(decimal num)
|
|
|
{
|
|
|
return FormatData(num, "0.0#");
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 格式化为2位小数
|
|
|
/// </summary>
|
|
|
/// <param name="num"></param>
|
|
|
/// <returns></returns>
|
|
|
public static string FormatDataDoublePoint(decimal num)
|
|
|
{
|
|
|
return FormatData(num, "f2");
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 指定格式的数字格式化
|
|
|
/// </summary>
|
|
|
/// <param name="num"></param>
|
|
|
/// <param name="format"></param>
|
|
|
/// <returns></returns>
|
|
|
public static string FormatData(decimal num, string format)
|
|
|
{
|
|
|
return num.ToString(format);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 金额分转元
|
|
|
/// </summary>
|
|
|
/// <param name="amount"></param>
|
|
|
/// <returns></returns>
|
|
|
public static decimal Fen2Yuan(object amount)
|
|
|
{
|
|
|
return Fen2Yuan(GetDecimal(amount));
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 金额分转元
|
|
|
/// </summary>
|
|
|
/// <param name="amount"></param>
|
|
|
/// <returns></returns>
|
|
|
public static decimal Fen2Yuan(decimal amount)
|
|
|
{
|
|
|
return amount / 100;
|
|
|
}
|
|
|
}
|
|
|
}
|