zoukankan      html  css  js  c++  java
  • 数值转大写人民币

    类似的小功能网上有很多写法,但关键在于思路。思路决定了代码的精炼,决定了效能。

    1)将12345.6789转为“壹万贰仟叁佰肆拾伍元陆角捌分”

    逻辑:

    第一步)四舍五入取2位小数,然后去掉小数点。

    第二步)循环每个字符,把数字转为对应的大写汉字,并在其后加入单位标识{x}

    第三步)把标识{x}替换为对应的单位

    public string getMoneyUpper(double money)
            {
                string n = money.ToString("#0.00").Replace(".", "");
                string MoneyUpper = "";
                int l = n.Length;
                for (int i = 0; i < n.Length; i++)
                {
                    switch (n[i].ToString())
                    {
                        case "0": MoneyUpper += ""; break;
                        case "1": MoneyUpper += ""; break;
                        case "2": MoneyUpper += ""; break;
                        case "3": MoneyUpper += ""; break;
                        case "4": MoneyUpper += ""; break;
                        case "5": MoneyUpper += ""; break;
                        case "6": MoneyUpper += ""; break;
                        case "7": MoneyUpper += ""; break;
                        case "8": MoneyUpper += ""; break;
                        case "9": MoneyUpper += ""; break;
                        default: break;
                    }
                    MoneyUpper += "{" + l + "}";
                    l--;
                }
    

            MoneyUpper = MoneyUpper.Replace("{1}", "分");
            MoneyUpper = MoneyUpper.Replace("{2}", "角");
            MoneyUpper = MoneyUpper.Replace("{3}", "元");
            MoneyUpper = MoneyUpper.Replace("{4}", "拾");
            MoneyUpper = MoneyUpper.Replace("{5}", "佰");
            MoneyUpper = MoneyUpper.Replace("{6}", "仟");
            MoneyUpper = MoneyUpper.Replace("{7}", "萬");
            MoneyUpper = MoneyUpper.Replace("{8}", "拾");

    return MoneyUpper;
            }

    2)找到12345.6789的第1个位置(从右向左,分开始)的大写汉字

    public static string getCapsMoney(double money,int index)
    {
            string n = money.ToString("#0.00").Replace(".", "");
    
            if (index < n.Length)
            {
                switch (n[n.Length - 1 - index].ToString())
                {
                    case "0": return "";
                    case "1": return "";
                    case "2": return "";
                    case "3": return "";
                    case "4": return "";
                    case "5": return "";
                    case "6": return "";
                    case "7": return "";
                    case "8": return "";
                    case "9": return "";
                    default: return "/";
                }
            }
            else
                return "/";
    }
  • 相关阅读:
    理解Web路由(浅谈前后端路由与前后端渲染)
    JavaEE开发之SpringMVC中的路由配置及参数传递详解
    Vue2.0 render: h => h(App)的解释
    vue data不可以使用箭头函数的问题解析
    9、响应式数据原理
    项目中的问题
    7-42 整型关键字的散列映射 (25分)
    7-43 字符串关键字的散列映射 (25分)
    7-45 航空公司VIP客户查询 (25分)
    7-44 基于词频的文件相似度 (30分)
  • 原文地址:https://www.cnblogs.com/kandyvip/p/4664350.html
Copyright © 2011-2022 走看看