C#小写金额转大写

用正则的写法实现.

//把小写金额转成大写
        public static string ConvertToChinese(decimal number)
        {
            var s = number.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");
            var d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
            var r = Regex.Replace(d, ".", m => "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万亿兆京垓秭穰"[m.Value[0] - '-'].ToString());
            return r+"整";
        }
        //把小写金额转成大写
        public static string ConvertToChinese(string numstr)
        {
            if (string.IsNullOrEmpty(numstr)) return "";
            try
            {
                decimal num = Convert.ToDecimal(numstr);
                return ConvertToChinese(num);
            }
            catch
            {
                return "非数字形式!";
            }
        }

  

posted @ 2020-01-13 16:38  石shi  阅读(576)  评论(0编辑  收藏  举报