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(); } } }
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);
MessageBox.Show(Regex.Replace(TextBox1.Text),@"(?<!^)(?=(\d\d\d)+(?:$|\.))",","));
MessageBox.Show(Regex.Replace(TextBox1.Text),@"(?<!^|\..*)(?=(\d\d\d)+(?:$|\.))",","));
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里面的格式要求,网页上一搜一大堆
第三四种看一下,它分为三个部分,用两个分号隔开,第一个是正数,第二个是负数,第三个是为零的时候输出的样式.
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();
}
}
}
string str1= decimal.Parse(str).ToString("#,##0");
已经测试过了
NFI.NumberDecimalDigits = 2; //设定的小数位数
string Str = "1201233.1233"
double.Parse(Str).ToString("N", NFI);
真够费劲的,特别开头的几种作法 看
http://msdn2.microsoft.com/en-us/library/s8s7t687.aspx
循环 string的length
if(i%3 ==0)
{
substring + ,
}
循环 string的length
if(i%3 ==0)
{
substring + ,
}
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里面的格式要求,网页上一搜一大堆
第三四种看一下,它分为三个部分,用两个分号隔开,第一个是正数,第二个是负数,第三个是为零的时候输出的样式.
{
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;
}谢谢 大家的支持!