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

C# 實現阿拉伯數字轉中文大寫金額 - 完整演算法與代碼

     編輯:關於C語言

功能概述

將數字字串(含小數)轉換為中文大寫金額格式,如 1234.56 → 壹仟貳佰叁拾肆圓伍角陸分。支援至萬億元(12 位整數 + 2 位小數)。

主入口 ConvertSum

public string ConvertSum(string str) {
    if (!IsPositveDecimal(str)) return "輸入的不是正數字!";
    if (double.Parse(str) > 999999999999.99) return "數字太大...";
    // 分割整數/小數部分
    string[] parts = str.Split('.');
    if (parts.Length == 1) return ConvertData(parts[0]) + "圓整";
    return ConvertData(parts[0]) + "圓" + ConvertXiaoShu(parts[1]);
}

核心轉換邏輯

整數部分 ConvertData (分段處理)

  • ≤4 位:直接 ConvertDigit。
  • 5-8 位:低 4 位 ConvertDigit + 「萬」 + 高位 ConvertDigit。
  • 9-12 位:低 4 位 + 中 4 位「萬」 + 高位「億」。
  • 後處理:替換「零萬→萬」、「零億→億」、「零零→零」等冗餘零。

四位內轉換 ConvertDigit

  • 1 位:ConvertChinese。
  • 2 位:Convert2Digit (十位+個位)。
  • 3 位:Convert3Digit (百+十+個)。
  • 4 位:Convert4Digit (千+百+十+個)。

小數部分 ConvertXiaoShu

  • 1 位:轉中文 + 「角」。
  • 2 位:首位「角」、次位「分」,移除「零角」、「零分」。

單一數字轉中文 ConvertChinese

switch(str) {
    case "0": return "零"; case "1": return "壹"; ... case "9": return "玖";
}

代碼特點

  • 純字串操作,無複雜數學運算。
  • 分段處理大數字,符合中文讀數習慣(萬、億單位)。
  • 多層 Replace 清理冗餘零,輸出符合財務規範。
  • 包含輸入驗證(正數、範圍)。

使用方式

Label1.Text = ConvertSum("1234567890.12");
// 輸出:壹拾貳億叁仟肆佰伍拾陸萬柒仟捌佰玖拾圓壹角貳分
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved