日期:2014-05-17  浏览次数:20461 次

正则不会。求改。很简单的。呵呵呵
C# code

    public string GetMoney(double dd)
    {
        string s = dd.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(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
        string value = Regex.Replace(d, ".", delegate(Match m)
        { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
        return value;
    }


这个正则现在想改成
如果是整数钱 就在后面加一个“整”字
例如 一百元整
不是整数的钱 就不写整 例如 一百零一元一角


------解决方案--------------------
那就 m.Value + “整” 不就行了,当然是不是整钱,这个你必须要知道
------解决方案--------------------
C# code

public string GetMoney(double dd)
    {
        string s = dd.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(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
        string value = Regex.Replace(d, ".",m=> "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万億兆京垓秭穰"[m.Value[0] - '-'].ToString());
        return dd==Convert.ToInt32(dd)?value+"整":value;
    }