using System;
using Masuit.Tools.Strings;
namespace Masuit.Tools;
public static class ValueTypeConvertExtensions
{
///
/// 字符串转int
///
/// 源字符串
/// 转换失败的默认值
/// int类型的数字
public static int ToInt32(this string s, int defaultValue = 0)
{
return s.TryConvertTo(defaultValue);
}
///
/// 字符串转long
///
/// 源字符串
/// 转换失败的默认值
/// int类型的数字
public static long ToInt64(this string s, long defaultValue = 0)
{
return s.TryConvertTo(defaultValue);
}
///
/// 字符串转double
///
/// 源字符串
/// 转换失败的默认值
/// double类型的数据
public static double ToDouble(this string s, double defaultValue = 0)
{
return s.TryConvertTo(defaultValue);
}
///
/// 字符串转decimal
///
/// 源字符串
/// 转换失败的默认值
/// int类型的数字
public static decimal ToDecimal(this string s, decimal defaultValue = 0)
{
return s.TryConvertTo(defaultValue);
}
///
/// 字符串转decimal
///
/// 源字符串
/// 小数位数
/// 转换失败的默认值
/// int类型的数字
public static decimal ToDecimal(this string s, int round, decimal defaultValue = 0)
{
return Math.Round(s.TryConvertTo(defaultValue), round, MidpointRounding.AwayFromZero);
}
///
/// 转double
///
///
/// double类型的数据
public static double ToDouble(this decimal num)
{
return (double)num;
}
///
/// 将double转换成int
///
/// double类型
/// int类型
public static int ToInt32(this double num)
{
return (int)Math.Floor(num);
}
///
/// 将double转换成int
///
/// double类型
/// int类型
public static int ToInt32(this decimal num)
{
return (int)Math.Floor(num);
}
///
/// 将int转换成double
///
/// int类型
/// int类型
public static double ToDouble(this int num)
{
return num * 1.0;
}
///
/// 将int转换成decimal
///
/// int类型
/// int类型
public static decimal ToDecimal(this int num)
{
return new decimal(num);
}
///
/// 保留小数
///
///
///
/// 四舍五入策略
///
public static decimal Round(this decimal num, int decimals, MidpointRounding mode = MidpointRounding.AwayFromZero)
{
num = Math.Round(num, decimals, mode);
return num;
}
///
/// 保留小数
///
///
///
/// 四舍五入策略
///
public static double Round(this double num, int decimals, MidpointRounding mode = MidpointRounding.AwayFromZero)
{
num = Math.Round(num, decimals, mode);
return num;
}
///
/// 保留小数
///
///
///
/// 四舍五入策略
///
public static decimal? Round(this decimal? num, int decimals, MidpointRounding mode = MidpointRounding.AwayFromZero)
{
if (num.HasValue)
{
num = Math.Round(num.Value, decimals, mode);
}
return num;
}
///
/// 保留小数
///
///
///
/// 四舍五入策略
///
public static double? Round(this double? num, int decimals, MidpointRounding mode = MidpointRounding.AwayFromZero)
{
if (num.HasValue)
{
num = Math.Round(num.Value, decimals, mode);
}
return num;
}
///
/// 转换为中文数字格式
///
///
///
public static string ToChineseNumber(this IConvertible number)
{
return NumberFormater.ToChineseNumber(number);
}
///
/// 数字转中文金额大写
///
///
///
public static string ToChineseMoney(this IConvertible number)
{
return NumberFormater.ToChineseMoney(number);
}
}