在Textbox中输入一串数字 显示像金额的形式 每隔3位用逗号分开 急需方法

解决方案 »

  1.   

    decimal.parse(Textbox.Text).ToString();
      

  2.   


    Textbox.Text = "12345678900";string temp = string.Empty;for (int i = 0; i < Textbox.Text.Length; i += 3)
    {
        temp += (i + 3 < Textbox.Text.Length) ? (Textbox.Text.Substring(i, 3) + ",") : Textbox.Text.Substring(i);
    }Textbox.Text = temp;Console.WriteLine(Textbox.Text);
      

  3.   

    MessageBox.Show(Regex.Replace(TextBox1.Text),@"(?<!^)(?=(\d\d\d)+(?:$|\.))",",");
      

  4.   

    少了半边括号
    MessageBox.Show(Regex.Replace(TextBox1.Text),@"(?<!^)(?=(\d\d\d)+(?:$|\.))",","));
      

  5.   

    不太严密
    MessageBox.Show(Regex.Replace(TextBox1.Text),@"(?<!^|\..*)(?=(\d\d\d)+(?:$|\.))",","));
      

  6.   

    double.Parse(Textbox.Text).ToString("n");
      

  7.   

    textBox1.Text = string.Format("{0:C}", 1234145.2334);
      

  8.   

    decimal及int或float等类型.可以直接使用StringFormat来完成格式化.建议楼主看看StringFormat另.如果只是按LZ要求的话,可以试一下下面的代码:decimal p = 123456.123456;
    string str = p.ToString("N2");//第一种
    string str1 = p.ToString("C");//第二种
    string str2 = p.ToString("#,##0.00;-#,##0.00;Zero");//第三种
    string str3 = p.ToString("#,##0.00;-#,##0.00;-");//第四种第一二种可以具体看一下StringFormat里面的格式要求,网页上一搜一大堆
    第三四种看一下,它分为三个部分,用两个分号隔开,第一个是正数,第二个是负数,第三个是为零的时候输出的样式.
      

  9.   

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Net;namespace cs2008lab
    {
        class Program
        {
            static void Main(string[] args)
            {
                // test 1
                string s = "1234.12";
                Console.WriteLine(s);
                Console.WriteLine(FormatMoney(s));
                
                // test 2
                s = "123456789";
                Console.WriteLine(s);
                Console.WriteLine(FormatMoney(s));            // test 3
                s = "123456";
                Console.WriteLine(s);
                Console.WriteLine(FormatMoney(s));            Console.ReadLine();
            }        static string FormatMoney(string str)
            {
                if (str == null || str.Length <= 3)
                    return str;            int i = str.IndexOf('.');            if (i == -1)
                    return str;            string intpart = str.Substring(0, i);            return FormatMoneyInt(intpart) + str.Substring(i);
            }        static string FormatMoneyInt(string str)
            {
                if (str == null || str.Length <= 3)
                    return str;            int len = str.Length;
                int i = 0;            StringBuilder sb = new StringBuilder(len + len / 3);            switch (len % 3)
                {
                    case 2:
                        sb.Append(str, i, 2);
                        i += 2;
                        break;
                    case 1:
                        sb.Append(str, i, 1);
                        i += 1;
                        break;
                    default:
                        break;
                }            while (i < len)
                {
                    if (i != 0)
                        sb.Append(',');
                    sb.Append(str, i, 3);
                    i += 3;
                }            return sb.ToString();
            }
        }
    }
      

  10.   

    string Format就可以搞网上搜一下.有很多.
      

  11.   

                string str = "3200000";
                string str1= decimal.Parse(str).ToString("#,##0");
    已经测试过了
      

  12.   

      NumberFormatInfo NFI = new NumberFormatInfo();
                        NFI.NumberDecimalDigits = 2;     //设定的小数位数
                        string Str = "1201233.1233"
                           double.Parse(Str).ToString("N", NFI);
      

  13.   

    NumberFormatInfo 的命名空间 System.Collections
      

  14.   

                Console.WriteLine("{0:N}", Decimal.Parse("1201233.1233"));
    真够费劲的,特别开头的几种作法 看
    http://msdn2.microsoft.com/en-us/library/s8s7t687.aspx
      

  15.   

    思路
    循环 string的length
    if(i%3 ==0)
    {
    substring + ,
    }
      

  16.   

    思路
    循环 string的length
    if(i%3 ==0)
    {
    substring + ,
    }
      

  17.   

    hiddkiller :NumberFormatInfo   的命名空间是 System.Globalization
      

  18.   

    楼主你试过我这个方法吗? 我是试验过的:textBox1.Text   =   string.Format("{0:C}",   1234145.2334);输出: ¥1,234,145.23
      

  19.   

    decimal及int或float等类型.可以直接使用StringFormat来完成格式化.建议楼主看看StringFormat 另.如果只是按LZ要求的话,可以试一下下面的代码: decimal   p   =   123456.123456; 
    string   str   =   p.ToString("N2");//第一种 
    string   str1   =   p.ToString("C");//第二种 
    string   str2   =   p.ToString("#,##0.00;-#,##0.00;Zero");//第三种 
    string   str3   =   p.ToString("#,##0.00;-#,##0.00;-");//第四种 第一二种可以具体看一下StringFormat里面的格式要求,网页上一搜一大堆 
    第三四种看一下,它分为三个部分,用两个分号隔开,第一个是正数,第二个是负数,第三个是为零的时候输出的样式. 
     
     
      

  20.   

    其实 我想要的结果是这样的---private void textBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    String sz = "";
    int Nyushu;
    sz = textBox1.Text;

    String s = sz.Replace(",",""); if (s.Length >= 4) 
    {
    int i=0;
    Nyushu = s.Length % 3; for (int n = 0; n < s.Length / 3; n++) 
    {
    if (n * 3 + Nyushu + i != 0 && n * 3 + Nyushu + i < s.Length)
    {
    str = s.Insert(n * 3 + Nyushu + i, ",");
    s = str;
    i++;

    }
    textBox1.Text = str;
    }
    textBox1.SelectionStart=textBox1.Text.Length;
    }谢谢 大家的支持!