c#把数字金额转换成中文大写金额

#region Member

        private static string[] moneyUnit = { "分", "角", "元", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "萬" };

#endregion

#region Methods

        /// <summary>

        /// 金额阿拉伯数字转换为大写

        /// </summary>

        /// <param name="value"></param>

        /// <returns></returns>

        private static string GetDaXieMoney(double value)

        {

            string result = "";         //←定义结果

            int unitPointer = 0;        //←定义单位位置

            //↓格式化金额字符串

            string valueStr = value.ToString("#0.00");

            //↓判断是否超出万亿的限制

            if (valueStr.Length > 16)

            {

                throw new Exception("不支持超过万亿级别的数字!");

            }

            //↓遍历字符串,获取金额大写

            for (int i = valueStr.Length - 1; i >= 0; i--)

            {

                //↓判断是否小数点

                if (valueStr[i] != '.')

                {

                    //↓后推方式增加内容

                    result = GetDaXie(valueStr[i]) + moneyUnit[unitPointer] + result;

                    //↓设置单位位置

                    unitPointer++;

                }

            }

            return result;

        }

 

        /// <summary>

        /// 获取大写信息

        /// </summary>

        /// <param name="c"></param>

        /// <returns></returns>

        private static string GetDaXie(char c)

        {

            string result = "";

            switch (c)

            {

                case '0':

                    result = "零";

                    break;

                case '1':

                    result = "壹";

                    break;

                case '2':

                    result = "贰";

                    break;

                case '3':

                    result = "叁";

                    break;

                case '4':

                    result = "肆";

                    break;

                case '5':

                    result = "伍";

                    break;

                case '6':

                    result = "陆";

                    break;

                case '7':

                    result = "柒";

                    break;

                case '8':

                    result = "捌";

                    break;

                case '9':

                    result = "玖";

                    break;

            }

            return result;

        }

#endregion

posted @ 2020-08-18 17:17  御翼仁粨狩  阅读(593)  评论(0)    收藏  举报