首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 數字金額轉中文大寫(二):輔助轉換函數

     編輯:關於C語言

模塊化設計

主函數 ConvertSum 拆分為:整數部分 ConvertData、小數部分 ConvertXiaoShu、四位分組 ConvertDigit、具體位數轉換 Convert4Digit/Convert3Digit/Convert2Digit、單字轉換 ConvertChinese。

核心輔助函數

單個數字 → 中文大寫


public string ConvertChinese(string digit)
{
    switch (digit)
    {
        case "0": return "零";
        case "1": return "壹";
        case "2": return "貳";
        case "3": return "叁";
        case "4": return "肆";
        case "5": return "伍";
        case "6": return "陸";
        case "7": return "柒";
        case "8": return "捌";
        case "9": return "玖";
        default: return "";
    }
}

兩位數轉換(十位+個位)


public string Convert2Digit(string str) // str.Length == 2
{
    string r = ConvertChinese(str[0].ToString()) + "拾" +
               ConvertChinese(str[1].ToString());
    return r.Replace("零拾", "零").Replace("零零", "零");
}

三位數轉換(百位+十位+個位)


public string Convert3Digit(string str) // str.Length == 3
{
    string r = ConvertChinese(str[0].ToString()) + "佰" +
               ConvertChinese(str[1].ToString()) + "拾" +
               ConvertChinese(str[2].ToString());
    return r.Replace("零佰", "零").Replace("零拾", "零").Replace("零零", "零");
}

四位數轉換(千位+百位+十位+個位)


public string Convert4Digit(string str) // str.Length == 4
{
    string r = ConvertChinese(str[0].ToString()) + "仟" +
               ConvertChinese(str[1].ToString()) + "佰" +
               ConvertChinese(str[2].ToString()) + "拾" +
               ConvertChinese(str[3].ToString());
    return r.Replace("零仟", "零").Replace("零佰", "零")
            .Replace("零拾", "零").Replace("零零", "零");
}

統一入口:按長度分發


public string ConvertDigit(string str) // 1~4 位
{
    switch (str.Length)
    {
        case 1: return ConvertChinese(str);
        case 2: return Convert2Digit(str);
        case 3: return Convert3Digit(str);
        case 4: return Convert4Digit(str);
        default: return "";
    }
}

設計亮點

  • 自低位向高位以 4 位為組(萬、億),遞歸/迭代處理超長數字。
  • 統一後處理 Replace 清理多餘「零」,保證語法規範(如「壹佰零壹」而非「壹佰零零壹」)。
  • 小數部分單獨處理「角、分」,支持 1-2 位小數。

適用場景

  • 財務系統:支票打印、報表生成、發票金額大寫。
  • 合同管理:自動生成大寫金額條款。
  • 教學演示:字符串處理、遞歸分組、字符替換綜合練習。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved