首页 > 其他 > 详细

数字转换成中文大小写、金额大小写

时间:2018-02-09 21:16:14      阅读:267      评论:0      收藏:0      [点我收藏+]

  将数字转换成中文大小写、金额大小写 

        /// <summary>
        /// 将数字转换成中文大写
        /// </summary>
        /// <param name="Value">数字</param>
        /// <param name="bToUpper">是否转换成汉字大写 true表示大写 false表示小写</param>
        /// <param name="bMoney">是否转换成金额格式 true表示金额格式  false表示普通格式</param>
        /// <returns></returns>
        public static string DataConvert(double Value, bool bToUpper = true, bool bMoney = true)
        {
            if (Value == 0 || Value > 999999999999.99)
            {
                if (Value == 0 && !bMoney)
                {
                    return "零";
                }
                else
                {
                    return "";
                }
            }
            string str = Value.ToString("F2");
            string sLast = "";//小数点后面的数据
            string fuhao = "";//负号
            string[] Cnum = new string[10];
            string[] Cbit = new string[12];
            Cnum[0] = "零";
            Cnum[1] = (bToUpper ? "壹" : "一");
            Cnum[2] = (bToUpper ? "贰" : "二");
            Cnum[3] = (bToUpper ? "叁" : "三");
            Cnum[4] = (bToUpper ? "肆" : "四");
            Cnum[5] = (bToUpper ? "伍" : "五");
            Cnum[6] = (bToUpper ? "陆" : "六");
            Cnum[7] = (bToUpper ? "柒" : "七");
            Cnum[8] = (bToUpper ? "捌" : "八");
            Cnum[9] = (bToUpper ? "玖" : "九");
            Cbit[0] = "";
            Cbit[1] = (bToUpper ? "拾" : "十");
            Cbit[2] = (bToUpper ? "佰" : "百");
            Cbit[3] = (bToUpper ? "仟" : "千");
            Cbit[4] = "万";
            Cbit[5] = (bToUpper ? "拾" : "十");
            Cbit[6] = (bToUpper ? "佰" : "百");
            Cbit[7] = (bToUpper ? "仟" : "千");
            Cbit[8] = "亿";
            Cbit[9] = (bToUpper ? "拾" : "十");
            Cbit[10] = (bToUpper ? "佰" : "百");
            Cbit[11] = (bToUpper ? "仟" : "千");
            if (!bMoney)
            {
                string[] arrayValue = Value.ToString().Split(‘.‘);
                sLast = arrayValue.Length > 1 ? arrayValue[1] : "";
            }
            if (Value < 0)
            {
                str = str.ToString().Remove(0, 1);//去掉负号
                fuhao = "负";
            }
            int MaxLen = str.Length;
            bool zoo = true;
            bool Needzoo = false;
            bool HaveWan = false;
            bool HaveYi = false;
            int tmpVal = 0;
            string[] strBit = new string[MaxLen];
            string ConvertMoney = "";
            int i = 0;
            for (i = 0; i < MaxLen; i++)
            {
                if (i != 2)
                {
                    tmpVal = Convert.ToInt32(str.Substring(MaxLen - i - 1, 1));
                }
                switch (i)
                {
                    case 0:
                        if (bMoney)
                        {
                            if (tmpVal != 0)
                            {
                                strBit[i] = Cnum[tmpVal] + "分";
                            }
                        }
                        break;
                    case 1:
                        if (bMoney)
                        {
                            if (tmpVal != 0)
                            {
                                strBit[i] = Cnum[tmpVal] + "角";
                            }
                        }
                        break;
                    case 2:

                        break;
                    case 3:
                        if (tmpVal != 0)
                        {
                            strBit[i] = Cnum[tmpVal] + (bMoney ? (bToUpper ? "圆" : "元") : "");
                            zoo = false;
                        }
                        else
                        {
                            Needzoo = true;
                            if (MaxLen > 4)
                            {
                                strBit[3] = (bMoney ? (bToUpper ? "圆" : "元") : "");
                            }
                        }
                        if (strBit[1] == "" && strBit[0] != "" && strBit[3] != "")
                        {
                            strBit[i] = strBit[i] + "零";
                        }
                        break;
                    case 4:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "拾" : "十");
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 5:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "佰" : "百");
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 6:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "仟" : "千");
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 7:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + "万";
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                            HaveWan = true;
                        }
                        break;
                    case 8:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "拾" : "十");
                            if (!HaveWan)
                            {
                                strBit[i] = strBit[i] + "万";
                            }
                            HaveWan = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 9:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "佰" : "百");
                            if (!HaveWan)
                            {
                                strBit[i] = strBit[i] + "万";
                            }
                            HaveWan = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 10:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "仟" : "千");
                            if (!HaveWan)
                            {
                                strBit[i] = strBit[i] + "万";
                            }
                            HaveWan = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 11:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + "亿";
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                            HaveYi = true;
                        }
                        break;
                    case 12:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "拾" : "十");
                            if (!HaveYi)
                            {
                                strBit[i] = strBit[i] + "亿";
                            }
                            HaveYi = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 13:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "佰" : "百");
                            if (!HaveYi)
                            {
                                strBit[i] = strBit[i] + "亿";
                            }
                            HaveYi = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 14:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "仟" : "千");
                            if (!HaveYi)
                            {
                                strBit[i] = strBit[i] + "亿";
                            }
                            HaveYi = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                }
            }
            str = "";
            for (i = MaxLen - 1; i >= 0; i--)
            {
                str = str + strBit[i];
            }
            if (bMoney)
            {
                ConvertMoney = (str.Contains("分") ? fuhao + str : fuhao + str + "整");
            }
            else
            {
                if ((int)Value == 0)
                {
                    str = "零";
                }
                if (sLast.Length > 0)
                {
                    if (Convert.ToInt32(sLast) > 0)
                    {
                        str = str + "点";
                        for (i = 0; i < sLast.Length; i++)
                        {
                            str = str + Cnum[Convert.ToInt32(sLast.Substring(i, 1))];
                        }
                    }
                }
                ConvertMoney = fuhao + str;
            }
            return ConvertMoney;
        }

 

数字转换成中文大小写、金额大小写

原文:https://www.cnblogs.com/xbzsz/p/8436706.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!