阿拉伯数字金额转为大写金额(c#)

来源:互联网 发布:unity代码优化 编辑:程序博客网 时间:2024/06/11 07:19

先记下来,以备后用! 

    /// <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();        }

測試結果:


0 0
原创粉丝点击