zoukankan      html  css  js  c++  java
  • 把数字转换为大写汉字

    #region 公共方法
            public static string  ConvertToChineseNum(double inputString)
            {
                string numList = "零壹贰叁肆伍陆柒捌玖";
                string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
                double number = 0;
                string tempOutString = null;

                try
                {
                    number = inputString;
                }
                catch
                {
                    return "传入参数非数字!";
                }

                if (number > 9999999999999.99)
                    return "超出范围的人民币值";

                //将小数转化为整数字符串
                string tempNumberString = Convert.ToInt64(number * 100).ToString();
                int tempNmberLength = tempNumberString.Length;
                int i = 0;
                while (i < tempNmberLength)
                {
                    int oneNumber = Int32.Parse(tempNumberString.Substring(i, 1));
                    string oneNumberChar = numList.Substring(oneNumber, 1);
                    string oneNumberUnit = rmbList.Substring(tempNmberLength - i - 1, 1);
                    if (oneNumberChar != "零")
                        tempOutString += oneNumberChar + oneNumberUnit;
                    else
                    {
                        if (oneNumberUnit == "亿" || oneNumberUnit == "万" || oneNumberUnit == "元" || oneNumberUnit == "零")
                        {
                            while (tempOutString.EndsWith("零"))
                            {
                                tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
                            }

                        }
                        if (oneNumberUnit == "亿" || (oneNumberUnit == "万" && !tempOutString.EndsWith("亿")) || oneNumberUnit == "元")
                        {
                            tempOutString += oneNumberUnit;
                        }
                        else
                        {
                            bool tempEnd = tempOutString.EndsWith("亿");
                            bool zeroEnd = tempOutString.EndsWith("零");
                            if (tempOutString.Length > 1)
                            {
                                bool zeroStart = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零");
                                if (!zeroEnd && (zeroStart || !tempEnd))
                                    tempOutString += oneNumberChar;
                            }
                            else
                            {
                                if (!zeroEnd && !tempEnd)
                                    tempOutString += oneNumberChar;
                            }
                        }
                    }
                    i += 1;
                }

                while (tempOutString.EndsWith("零"))
                {
                    tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
                }

                while (tempOutString.EndsWith("元"))
                {
                    tempOutString = tempOutString + "整";
                }

                return tempOutString;


            }
            #endregion

  • 相关阅读:
    JavaScript与OC的交互
    通过修改自动布局的约束实现键盘弹出后view上推
    Foundation框架之NSArray
    Foundation框架之NSString
    Foundation框架之常用结构体
    C语言中的预处理指令
    C语言指针使用总结
    C语言中函数的使用及多文件团队开发
    Foundation框架简介
    文件的输入与输出
  • 原文地址:https://www.cnblogs.com/haofaner/p/3567373.html
Copyright © 2011-2022 走看看