如题

解决方案 »

  1.   

    \d{3}
    RegexOptions.RightToLeft 
      

  2.   


    void Main()
    {
    string str="1234154341";
    int temp=str.Length%3;
    if(temp==0)
    {
    var query=Regex.Split(str,@"(?<=\G\d{3})");
    str=string.Join(",",query.ToArray()); 
    }
    else
    {
    var query=new string[]{str.Substring(0,temp)}.Concat(Regex.Split(str.Substring(temp),@"(?<=\G\d{3})"));
    str=string.Join(",",query.ToArray()); 
    }
    Console.WriteLine(str.TrimEnd(','));
    //1,234,154,341
    }
      

  3.   

    这问题用正则实在是太浪费资源了...
    1234154341.ToString("0,000")
    int.Parse("1234154341").ToString("0,000")
      

  4.   

    本帖最后由 lxcnn 于 2011-05-05 18:01:38 编辑
      

  5.   

    string test = "1234154341.34234234";
                Regex reg = new Regex(@"(?=(?:\d{3})+\b)(?<!\.\d*)");
                string result = reg.Replace(test, ",");
                Console.WriteLine(result);其实我第一次选择的就是vrhero的方法。可惜的是带小数的时候
                double i = 4434323423403.343434;
                Console.WriteLine(i.ToString("0,000.00"));
    后面的小数不知道该怎么处理才能完全显示出来
      

  6.   

    厄...楼主又没说小数...再说double的最大精度不过17位,decimal的最大精度不过29位...多写些#又不影响性能,30个#足够应付所有小数了...
    1234154341.34234234.ToString("0,000.##############################")
      

  7.   

                string str = "1234154341";
                Regex reg = new Regex(@"(\d{3})", RegexOptions.RightToLeft);
                Response.Write(reg.Replace(str, ",$1"));
    //1,234,154,341