C#阿拉伯数字金额转换为中文大写金额
来源:互联网 发布:java读取word文档内容 编辑:程序博客网 时间:2024/04/30 17:52
#region 大小写转换 #region Member private static string[] moneyUnit = { "分", "角", "圆", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "萬" }; #endregion #region Methods /// <summary> /// 金额阿拉伯数字转换为大写 /// </summary> /// <param name="value"></param> /// <returns></returns> private static string GetDaXieMoney(double value) { string result = ""; //←定义结果 int unitPointer = 0; //←定义单位位置 //↓格式化金额字符串 string valueStr = value.ToString("#0.00"); //↓判断是否超出万亿的限制 if (valueStr.Length > 16) { throw new Exception("不支持超过万亿级别的数字!"); } //↓遍历字符串,获取金额大写 for (int i = valueStr.Length - 1; i >= 0; i--) { //↓判断是否小数点 if (valueStr[i] != '.') { //↓后推方式增加内容 result = GetDaXie(valueStr[i]) + moneyUnit[unitPointer] + result; //↓设置单位位置 unitPointer++; } } return result; } /// <summary> /// 获取大写信息 /// </summary> /// <param name="c"></param> /// <returns></returns> private static string GetDaXie(char c) { string result = ""; switch (c) { case '0': result = "零"; break; case '1': result = "壹"; break; case '2': result = "贰"; break; case '3': result = "叁"; break; case '4': result = "肆"; break; case '5': result = "伍"; break; case '6': result = "陆"; break; case '7': result = "柒"; break; case '8': result = "捌"; break; case '9': result = "玖"; break; } return result; } #endregion #endregion