导航

C# 大小写转换(double + 正则)

Posted on 2011-02-19 09:43  夹心刺猬  阅读(295)  评论(0)    收藏  举报
    string ConvertToChinese(double amount)
    {
        string amountFormat = amount.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");
        string d = Regex.Replace(amountFormat, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
        string retChinese =  Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万亿兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
        string[] amountArray = amount.ToString("").Split('.');
        if (!(amount.ToString().IndexOf(".") > -1 && Convert.ToInt32(amountArray[1]) > 0))
            retChinese += "整";
               
        return retChinese;
    }