您的位置:首页 > 其它

将小写阿拉伯数字转换成大写的汉字,

2016-11-14 20:10 435 查看

 

 

    #region 小写转大写
       
            /// <summary>    ///
            /// 金额转为大写金额   
            ///  </summary>   
            /// <param name="LowerMoney"></param>   <returns></returns>  
        public static string MoneyToChinese(decimal NubMoney)
        {
           string LowerMoney = NubMoney.ToString();
            string functionReturnValue = null;
            bool IsNegative = false;
            // 是否是负数  
            if (LowerMoney.Trim().Substring(0, 1) == "-")
            {        // 是负数则先转为正数    
                LowerMoney = LowerMoney.Trim().Remove(0, 1);
                IsNegative = true;
            }
            string strLower = null;
            string strUpart = null; string strUpper = null; int iTemp = 0;
            // 保留两位小数 123.489→123.49  123.4→123.4    
            LowerMoney = Math.Round(double.Parse(LowerMoney), 2).ToString();
            if (LowerMoney.IndexOf(".") > 0)
            {
                if (LowerMoney.IndexOf(".") == LowerMoney.Length - 2)
                { LowerMoney = LowerMoney + "0"; }
            }
            else
            {
                LowerMoney = LowerMoney + ".00";
            } strLower = LowerMoney; iTemp = 1; strUpper = ""; while (iTemp <= strLower.Length)
            {
                switch (strLower.Substring(strLower.Length - iTemp, 1))
                {
                    case ".": strUpart = "圆";
                        break;
                    case "0": strUpart = "零"; break;
                    case "1": strUpart = "壹";
                        break;
                    case "2": strUpart = "贰"; break;
                    case "3": strUpart = "叁";
                        break;
                    case "4": strUpart = "肆"; break;
                    case "5": strUpart = "伍";
                        break;
                    case "6": strUpart = "陆"; break;
                    case "7": strUpart = "柒";
                        break;
                    case "8": strUpart = "捌"; break;
                    case "9": strUpart = "玖";
                        break;
                } switch (iTemp)
                {
                    case 1: strUpart = strUpart + "分";
                        break;
                    case 2: strUpart = strUpart + "角"; break;
                    case 3:
                        strUpart = strUpart + ""; break;
                    case 4: strUpart = strUpart + "";
                        break;
                    case 5: strUpart = strUpart + "拾"; break;
                    case 6:
                        strUpart = strUpart + "佰"; break;
                    case 7: strUpart = strUpart + "仟";
                        break;
                    case 8: strUpart = strUpart + "万"; break;
                    case 9:
                        strUpart = strUpart + "拾"; break;
                    case 10:
                        strUpart = strUpart + "佰"; break;
                    case 11:
                        strUpart = strUpart + "仟"; break;
                    case 12:
                        strUpart = strUpart + "亿"; break;
                    case 13:
                        strUpart = strUpart + "拾"; break;
                    case 14:
                        strUpart = strUpart + "佰"; break;
                    case 15:
                        strUpart = strUpart + "仟"; break;
                    case 16:
                        strUpart = strUpart + "万"; break;
                    default:
                        strUpart = strUpart + ""; break;
                }
                strUpper = strUpart + strUpper; iTemp = iTemp + 1;
            } strUpper = strUpper.Replace("零拾", "零");
            strUpper = strUpper.Replace("零佰", "零"); strUpper = strUpper.Replace("零仟", "零"); strUpper = strUpper.Replace("零零零", "零");
            strUpper = strUpper.Replace("零零", "零"); strUpper = strUpper.Replace("零角零分", "整"); strUpper = strUpper.Replace("零分", "整");
            strUpper = strUpper.Replace("零角", "零"); strUpper = strUpper.Replace("零亿零万零圆", "亿圆");
            strUpper = strUpper.Replace("亿零万零圆", "亿圆"); strUpper = strUpper.Replace("零亿零万", "亿");
            strUpper = strUpper.Replace("零万零圆", "万圆"); strUpper = strUpper.Replace("零亿", "亿");
            strUpper = strUpper.Replace("零万", "万"); strUpper = strUpper.Replace("零圆", "圆");
            strUpper = strUpper.Replace("零零", "零");
            // 对壹圆以下的金额的处理    
            if (strUpper.Substring(0, 1) == "圆")
            {
                strUpper = strUpper.Substring(1, strUpper.Length - 1);
            } if (strUpper.Substring(0, 1) == "零")
            {
                strUpper = strUpper.Substring(1, strUpper.Length - 1);
            }
            if (strUpper.Substring(0, 1) == "角")
            {
                strUpper = strUpper.Substring(1, strUpper.Length - 1);
            } if (strUpper.Substring(0, 1) == "分")
            {
                strUpper = strUpper.Substring(1, strUpper.Length - 1);
            } if (strUpper.Substring(0, 1) == "整")
            {
                strUpper = "零圆整";
            } functionReturnValue = strUpper; if (IsNegative == true)
            {
                return "负" + functionReturnValue;
            }
            else { return functionReturnValue; }
        }

        /// <summary>    ///
        /// 金额转为大写金额   
        ///  </summary>   
        /// <param name="LowerMoney"></param>   <returns></returns>  
        public static string NumberToChinese(decimal NubMoney)
        {
            string LowerMoney = NubMoney.ToString();
            string functionReturnValue = null;
            bool IsNegative = false;
            // 是否是负数  
            if (LowerMoney.Trim().Substring(0, 1) == "-")
            {        // 是负数则先转为正数    
                LowerMoney = LowerMoney.Trim().Remove(0, 1);
                IsNegative = true;
            }
            string strLower = null;
            string strUpart = null; string strUpper = null; int iTemp = 0;
            // 保留两位小数 123.489→123.49  123.4→123.4    
            LowerMoney = Math.Round(double.Parse(LowerMoney), 2).ToString();
            if (LowerMoney.IndexOf(".") > 0)
            {
                if (LowerMoney.IndexOf(".") == LowerMoney.Length - 2)
                { LowerMoney = LowerMoney + "0"; }
            }
            else
            {
                LowerMoney = LowerMoney + ".00";
            } strLower = LowerMoney; iTemp = 1; strUpper = ""; while (iTemp <= strLower.Length)
            {
                switch (strLower.Substring(strLower.Length - iTemp, 1))
                {
                    case ".": strUpart = "";
                        break;
                    case "0": strUpart = "零"; break;
                    case "1": strUpart = "一";
                        break;
                    case "2": strUpart = "二"; break;
                    case "3": strUpart = "三";
                        break;
                    case "4": strUpart = "四"; break;
                    case "5": strUpart = "五";
                        break;
                    case "6": strUpart = "六"; break;
                    case "7": strUpart = "七";
                        break;
                    case "8": strUpart = "八"; break;
                    case "9": strUpart = "九";
                        break;
                }
                switch (iTemp)
                {
                    case 1: strUpart = strUpart + "";
                        break;
                    case 2: strUpart = strUpart + ""; break;
                    case 3:
                        strUpart = strUpart + ""; break;
                    case 4: strUpart = strUpart + "";
                        break;
                    case 5: strUpart = strUpart + "拾"; break;
                    case 6:
                        strUpart = strUpart + "佰"; break;
                    case 7: strUpart = strUpart + "仟";
                        break;
                    case 8: strUpart = strUpart + "万"; break;
                    case 9:
                        strUpart = strUpart + "拾"; break;
                    case 10:
                        strUpart = strUpart + "佰"; break;
                    case 11:
                        strUpart = strUpart + "仟"; break;
                    case 12:
                        strUpart = strUpart + "亿"; break;
                    case 13:
                        strUpart = strUpart + "拾"; break;
                    case 14:
                        strUpart = strUpart + "佰"; break;
                    case 15:
                        strUpart = strUpart + "仟"; break;
                    case 16:
                        strUpart = strUpart + "万"; break;
                    default:
                        strUpart = strUpart + ""; break;
                }
                strUpper = strUpart + strUpper; iTemp = iTemp + 1;
            }
            strUpper = strUpper.Replace("零拾", "零");
            strUpper = strUpper.Replace("零佰", "零");
            strUpper = strUpper.Replace("零仟", "零");
            strUpper = strUpper.Replace("零零零", "零");
            strUpper = strUpper.Replace("零零", "零");
            strUpper = strUpper.Replace("零角零分", "整");
            strUpper = strUpper.Replace("零分", "整");
            strUpper = strUpper.Replace("零角", "零");
            strUpper = strUpper.Replace("零亿零万零圆", "亿圆");
            strUpper = strUpper.Replace("亿零万零圆", "亿圆");
            strUpper = strUpper.Replace("零亿零万", "亿");
            strUpper = strUpper.Replace("零万零圆", "万圆");
            strUpper = strUpper.Replace("零亿", "亿");
            strUpper = strUpper.Replace("零万", "万");
            if (strUpper.IndexOf("一亿万") > -1)
                strUpper = strUpper.Replace("万","");
            strUpper = strUpper.Replace("零圆", "圆");
            strUpper = strUpper.Replace("零零", "零");
            // 对壹圆以下的金额的处理    
            if (strUpper.Substring(0, 1) == "圆")
            {
                strUpper = strUpper.Substring(1, strUpper.Length - 1);
            } if (strUpper.Substring(0, 1) == "零")
            {
                strUpper = strUpper.Substring(1, strUpper.Length - 1);
            }
            if (strUpper.Substring(0, 1) == "角")
            {
                strUpper = strUpper.Substring(1, strUpper.Length - 1);
            } if (strUpper.Substring(0, 1) == "分")
            {
                strUpper = strUpper.Substring(1, strUpper.Length - 1);
            } if (strUpper.Substring(0, 1) == "整")
            {
                strUpper = "零圆整";
            }
            if (strUpper.LastIndexOf("零") > -1) {
                strUpper = strUpper.Substring(0, strUpper.Length - 1);
            }
            functionReturnValue = strUpper;
            if (IsNegative == true)
            {
                return "负" + functionReturnValue;
            }

            else { return functionReturnValue; }
        }
        #endregion

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐