原文
C# 阿拉伯整数转中文算法
代码
string NumToHanzi(int num)
{
string[] nums = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
string[] units = { "", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千" };
if (num == 0)
{
return nums[0];
}
string sign = "";
if (num < 0)
{
sign = "负";
num = -num;
}
string strNum = num.ToString();
char[] chars = strNum.ToCharArray();
Array.Reverse(chars);
strNum = new string(chars);
string result = "";
for (int i = 0; i < strNum.Length; i++)
{
int digit = int.Parse(strNum[i].ToString());
result = nums[digit] + units[i] + result;
}
result = result.Replace("零十", "零").Replace("零百", "零").Replace("零千", "零").Replace("亿万", "亿").Replace("一十", "十");
while (result.Contains("零零"))
{
result = result.Replace("零零", "零");
}
if (result.EndsWith("零"))
{
result = result.Remove(result.Length - 1);
}
result = sign + result;
return result;
}
网友评论