變數定義:
- number:待轉換人民幣金額
注:人民幣金額一般為整數,可為負,
演算法代碼(C#):
//人民幣金額大寫轉換
public static String ConvertToChinese(Decimal number)
{
var s = number.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");
s = s.Replace("0B0A", "@");
var d = Regex.Replace(s, @"[A-Z][A-Z]", "");
var r = Regex.Replace(d, ".", m => "負元空零壹貳叁肆伍陸柒捌玖空空空空空空整分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString());
return r;
}
演算法實作:
- 利用格式化輸出把數字中間按順序插入大寫字母,
- 把相鄰的大寫字母替換為空字符,
- 最后把數字和字母替換成中文(字母替換為數字的十進制數位的中文名稱),
注:核心思路是把ASCII碼值相減得到中文字串中對應的字符索引,
相關文章:
你見過哪些令你瞠目結舌的C#代碼?——知乎
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/48229.html
標籤:C#
上一篇:Linq結果“狀態”欄位使用列舉的Name替換怎么實作
下一篇:NPOI使用手冊
