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 "/";
    }
  • 相关阅读:
    c++中vector的用法详解[转]
    C++ String
    va_list用法
    如何高效的分析AWR报告
    Oracle存储过程跟踪错误的方法
    Oracle找出锁,并KILL掉
    OracleAWR报告概念和生成
    Linux系统的内存管理
    AIX系统下配置FTP服务
    通过修改注册表配置IE选项
  • 原文地址:https://www.cnblogs.com/kandyvip/p/4664350.html
Copyright © 2011-2022 走看看