阿拉伯数字金额转为大写金额的C#代码

jopen 5年前

    /// <summary>        /// 金额转为大写金额        /// </summary>        public class MoneyConvertChinese        {            /// <summary>            /// 金额转为大写金额            /// </summary>            /// <param name="LowerMoney"></param>            /// <returns></returns>            public string MoneyToChinese(string LowerMoney)            {                string functionReturnValue = null;                bool IsNegative = false; // 是否是负数                if (LowerMoney.Trim().Substring(0, 1) == "-")                {                    // 是负数则先转为正数                    LowerMoney = LowerMoney.Trim().Remove(0, 1);                    IsNegative = true;                }                string strLower = null;                string strUpart = null;                string strUpper = null;                int iTemp = 0;                // 保留两位小数 123.489→123.49  123.4→123.4                LowerMoney = Math.Round(double.Parse(LowerMoney), 2).ToString();                if (LowerMoney.IndexOf(".") > 0)                {                    if (LowerMoney.IndexOf(".") == LowerMoney.Length - 2)                    {                        LowerMoney = LowerMoney + "0";                    }                }                else                {                    LowerMoney = LowerMoney + ".00";                }                strLower = LowerMoney;                iTemp = 1;                strUpper = "";                while (iTemp <= strLower.Length)                {                    switch (strLower.Substring(strLower.Length - iTemp, 1))                    {                        case ".":                            strUpart = "圆";                            break;                        case "0":                            strUpart = "零";                            break;                        case "1":                            strUpart = "壹";                            break;                        case "2":                            strUpart = "贰";                            break;                        case "3":                            strUpart = "叁";                            break;                        case "4":                            strUpart = "肆";                            break;                        case "5":                            strUpart = "伍";                            break;                        case "6":                            strUpart = "陆";                            break;                        case "7":                            strUpart = "柒";                            break;                        case "8":                            strUpart = "捌";                            break;                        case "9":                            strUpart = "玖";                            break;                    }                            switch (iTemp)                    {                        case 1:                            strUpart = strUpart + "分";                            break;                        case 2:                            strUpart = strUpart + "角";                            break;                        case 3:                            strUpart = strUpart + "";                            break;                        case 4:                            strUpart = strUpart + "";                            break;                        case 5:                            strUpart = strUpart + "拾";                            break;                        case 6:                            strUpart = strUpart + "佰";                            break;                        case 7:                            strUpart = strUpart + "仟";                            break;                        case 8:                            strUpart = strUpart + "万";                            break;                        case 9:                            strUpart = strUpart + "拾";                            break;                        case 10:                            strUpart = strUpart + "佰";                            break;                        case 11:                            strUpart = strUpart + "仟";                            break;                        case 12:                            strUpart = strUpart + "亿";                            break;                        case 13:                            strUpart = strUpart + "拾";                            break;                        case 14:                            strUpart = strUpart + "佰";                            break;                        case 15:                            strUpart = strUpart + "仟";                            break;                        case 16:                            strUpart = strUpart + "万";                            break;                        default:                            strUpart = strUpart + "";                            break;                    }                            strUpper = strUpart + strUpper;                    iTemp = iTemp + 1;                }                        strUpper = strUpper.Replace("零拾", "零");                strUpper = strUpper.Replace("零佰", "零");                strUpper = strUpper.Replace("零仟", "零");                strUpper = strUpper.Replace("零零零", "零");                strUpper = strUpper.Replace("零零", "零");                strUpper = strUpper.Replace("零角零分", "整");                strUpper = strUpper.Replace("零分", "整");                strUpper = strUpper.Replace("零角", "零");                strUpper = strUpper.Replace("零亿零万零圆", "亿圆");                strUpper = strUpper.Replace("亿零万零圆", "亿圆");                strUpper = strUpper.Replace("零亿零万", "亿");                strUpper = strUpper.Replace("零万零圆", "万圆");                strUpper = strUpper.Replace("零亿", "亿");                strUpper = strUpper.Replace("零万", "万");                strUpper = strUpper.Replace("零圆", "圆");                strUpper = strUpper.Replace("零零", "零");                        // 对壹圆以下的金额的处理                if (strUpper.Substring(0, 1) == "圆")                {                    strUpper = strUpper.Substring(1, strUpper.Length - 1);                }                if (strUpper.Substring(0, 1) == "零")                {                    strUpper = strUpper.Substring(1, strUpper.Length - 1);                }                if (strUpper.Substring(0, 1) == "角")                {                    strUpper = strUpper.Substring(1, strUpper.Length - 1);                }                if (strUpper.Substring(0, 1) == "分")                {                    strUpper = strUpper.Substring(1, strUpper.Length - 1);                }                 if (strUpper.Substring(0, 1) == "整")                {                    strUpper = "零圆整";                }                functionReturnValue = strUpper;                        if (IsNegative == true)                {                    return "负" + functionReturnValue;                }                else                {                    return functionReturnValue;                }            }        }  
测试:
    static void Main(string[] args)        {            Console.Write("请输入要转成大写的数字:");            string str = Console.ReadLine();            Console.WriteLine("大写:" + new MoneyConvertChinese().MoneyToChinese(str));            Console.ReadLine();        }