#region 大小写转换
#region Member
private static string[] moneyUnit = { "分", "角", "圆", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "萬" };
#endregion
#region Methods
/// <summary>
/// 金额阿拉伯数字转换为大写
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
private static string GetDaXieMoney(double value)
{
string result = ""; //←定义结果
int unitPointer = 0; //←定义单位位置
//↓格式化金额字符串
string valueStr = value.ToString("#0.00");
//↓判断是否超出万亿的限制
if (valueStr.Length > 16)
{
throw new Exception("不支持超过万亿级别的数字!");
}
//↓遍历字符串,获取金额大写
for (int i = valueStr.Length - 1; i >= 0; i--)
{
//↓判断是否小数点
if (valueStr[i] != '.')
{
//↓后推方式增加内容
result = GetDaXie(valueStr[i]) + moneyUnit[unitPointer] + result;
//↓设置单位位置
unitPointer++;
}
}
return result;
}
/// <summary>
/// 获取大写信息
/// </summary>
/// <param name="c"></param>
/// <returns></returns>
private static string GetDaXie(char c)
{
string result = "";
switch (c)
{
case '0':
result = "零";
break;
case '1':
result = "壹";
break;
case '2':
result = "贰";
break;
case '3':
result = "叁";
break;
case '4':
result = "肆";
break;
case '5':
result = "伍";
break;
case '6':
result = "陆";
break;
case '7':
result = "柒";
break;
case '8':
result = "捌";
break;
case '9':
result = "玖";
break;
}
return result;
}
#endregion
#endregion
C#阿拉伯数字金额转换为中文大写金额
最新推荐文章于 2024-08-07 02:14:24 发布