zoukankan      html  css  js  c++  java
  • 将小写金额转换成为大写

    如果有Bug,请留言我我及时的改。

    public string FormatMoneyToUpper(decimal money)
        {
            bool isTrue = false;//判定是否为负值,是则为True否则为False
            if (money < 0)
            {
                //如果该值是负数,那先将该值转换为正数,然后将Istrue标记为True
                money=Math.Abs(money);
                isTrue = true;
            }
            //先转换为小数点后两位
            string oldNum = Math.Round(money, 2).ToString();
            //如果字符串中不存在"."那么就将他加".00" ,如果是一位小数则在后面补0;
            if (oldNum.IndexOf(".") == -1)
            { oldNum = oldNum + ".00"; }
            else if (oldNum.IndexOf(".") == oldNum.Length - 2)
            { oldNum = oldNum + "0";}
    
            char[] charArr = oldNum.ToCharArray();
            string upper="";
            string upperA = "";
            string[] upperNum = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
            string[] unit = { "分", "角", "圆", "拾", "佰", "仟", "万", "亿" };
            int len = 1;
            while (len <= oldNum.Length)
            {
                //判断每位对应的大写
                switch (oldNum.Substring(oldNum.Length - len, 1))
                {
                    case ".": upperA = "圆"; break;
                    case "0": upperA = "零"; break;
                    case "1": upperA = "壹"; break;
                    case "2": upperA = "贰"; break;
                    case "3": upperA = "叁"; break;
                    case "4": upperA = "肆"; break;
                    case "5": upperA = "伍"; break;
                    case "6": upperA = "陆"; break;
                    case "7": upperA = "柒"; break;
                    case "8": upperA = "捌"; break;
                    case "9": upperA = "玖"; break;
                }
                //将数值后添加单位
                switch (len)
                {
                    case 1: upperA = upperA + "分"; break;
                    case 2: upperA = upperA + "角"; break;
                    case 3: upperA = upperA + ""; break;
                    case 4: upperA = upperA + ""; break;
                    case 5: upperA = upperA + "拾"; break;
                    case 6: upperA = upperA + "佰"; break;
                    case 7: upperA = upperA + "仟"; break;
                    case 8: upperA = upperA + "萬"; break;
                    case 9: upperA = upperA + "拾"; break;
                    case 10: upperA = upperA + "佰"; break;
                    case 11: upperA = upperA + "仟"; break;
                    case 12: upperA = upperA + "億"; break;
                    case 13: upperA = upperA + "拾"; break;
                    case 14: upperA = upperA + "佰"; break;
                    case 15: upperA = upperA + "仟"; break;
                    case 16: upperA = upperA + "萬"; break;
                    default: upperA += ""; break;
                }
                upper = upperA + upper;
                len++;
            }
            upper = upper.Replace("零拾", "零");// 处理101   壹佰零拾壹
            upper = upper.Replace("零佰", "零");// 处理1001   壹仟零佰零拾壹
            upper = upper.Replace("零仟", "零");// 处理10001   壹萬零仟零佰零拾壹
            upper = upper.Replace("零零零", "零");//经过上面处理可能会出现  例如10001 就会是   壹萬零零零壹
            upper = upper.Replace("零零", "零");//经过上面处理可能会出现  例如1001 就会是   壹仟零零壹
            upper = upper.Replace("零角零分", "整");//1001.00 会出现 零角零分
            upper = upper.Replace("零分", "整");//1001.50  会出现 零分
            upper = upper.Replace("零角", "零");//1001.05  会出现 零角
            upper = upper.Replace("零億零萬零圆", "億圆");//
            upper = upper.Replace("億零萬零圆", "億圆");
            upper = upper.Replace("零億零萬", "億");//10000000001   壹佰零億零萬零壹圆整
            upper = upper.Replace("零萬零圆", "萬圆");
            upper = upper.Replace("零億", "億");
            upper = upper.Replace("零萬", "萬");
            upper = upper.Replace("零圆", "圆");
            upper = upper.Replace("億萬", "億");
            upper = upper.Replace("零零", "零");
            //对零圆以下处理
            if (upper.Substring(0, 1) == "圆")
            { upper = upper.Substring(1, upper.Length - 1); }
            if (upper.Substring(0, 1) == "角")
            { upper = upper.Substring(1, upper.Length - 1); }
            if (upper.Substring(0, 1) == "分")
            { upper = upper.Substring(1, upper.Length - 1); }
            if (upper.Substring(0, 1) == "零")
            { upper = upper.Substring(1, upper.Length - 1); }
            if (upper.Substring(0, 1) == "整")
            { upper = "零圆整"; }
            if (isTrue)
            { upper = "负" + upper; }
            return upper;
        }


  • 相关阅读:
    Super Mario
    SPOJ Count on a tree
    SPOJ DQUERY
    51nod 区间中第K大的数
    POJ2104 K-th Number
    矩阵模板
    Sasha and Array
    MVC RenderSection
    Lazy Acquisition
    .net4.5 await async 简化之后的异步编程模型
  • 原文地址:https://www.cnblogs.com/raphael5200/p/5114867.html
Copyright © 2011-2022 走看看