[C#]阿拉伯數字轉國字

看到Rico的[C#][WinForm]如何將數字轉為國字又手癢了一下,也試著寫了一段程式,隨手記錄一下。

基本上要作數字轉國字,大致上有兩種方法:

下方為我寫的土法煉鋼程式:

        static string GetChineseNumber(int number)
{
string[] chineseNumber = { “零”, “一”, “二”, “三”, “四”, “五”, “六”, “七”, “八”, “九” };
string[] unit = { “”, “十”, “百”, “千”, “萬”, “十萬”, “百萬”, “千萬”, “億”, “十億”, “百億”, “千億”, “兆”, “十兆”, “百兆”, “千兆” };
StringBuilder ret = new StringBuilder();
string inputNumber = number.ToString();
int idx = inputNumber.Length;
bool needAppendZero = false;
foreach (char c in inputNumber)
{
idx–;
if (c > ‘0’)
{
if (needAppendZero)
{
ret.Append(chineseNumber[0]);
needAppendZero = false;
}
ret.Append(chineseNumber[(int)(c - ‘0’)] + unit[idx]);
}
else
needAppendZero = true;
}
return ret.Length == 0 ? chineseNumber[0] : ret.ToString ();
}


使用範例:


            for (int num = 0; num < 100; num++)
Console.WriteLine(GetChineseNumber(num));

執行結果:

image

Link


  • [C#][WinForm]如何將數字轉為國字