- A+
所属分类:.NET技术
变量定义:
- 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#代码?——知乎