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