码迷,mamicode.com
首页 > Windows程序 > 详细

在C#中将金额转换成中文大写金额

时间:2015-06-11 00:01:08      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:

具体代码如下:

    /// <summary>
    /// 金额转换成中文大写金额
    /// </summary>
    /// <param name="LowerMoney">eg:10.74</param>
    /// <returns></returns>
    public static string MoneyToUpper(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;
        }
    }

使用:

Console.WriteLine(MoneyToUpper("20.22"));

 结果:

  贰拾圆贰角贰分

在C#中将金额转换成中文大写金额

标签:

原文地址:http://www.cnblogs.com/zuqing/p/4567411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!