02
2013
05

C#.ToString()格式字符串的各种格式转换

要转换字符数据为一些特殊格式,如下:

stringstr1=string.Format("{0:N1}",56789);               //result: 56,789.0
stringstr2=string.Format("{0:N2}",56789);               //result: 56,789.00
stringstr3=string.Format("{0:N3}",56789);               //result: 56,789.000
stringstr8=string.Format("{0:F1}",56789);               //result: 56789.0
stringstr9=string.Format("{0:F2}",56789);               //result: 56789.00
stringstr11 =(56789 /100.0).ToString("#.##");          //result: 567.89
stringstr12 =(56789 / 100).ToString("#.##");             //result: 567
C 或 c货币
Console.Write("{0:C}", 2.5);//$2.50
Console.Write("{0:C}", -2.5);//($2.50)
D 或 d十进制数
Console.Write("{0:D5}", 25);//00025
E 或 e科学型
Console.Write("{0:E}", 250000);//2.500000E+005
F 或 f固定点
Console.Write("{0:F2}", 25);//25.00
Console.Write("{0:F0}", 25); //25
G 或 g常规
Console.Write("{0:G}", 2.5);//2.5
N 或 n数字
Console.Write("{0:N}", 2500000);//2,500,000.00
X 或 x十六进制
Console.Write("{0:X}", 250); //FA
Console.Write("{0:X}", 0xffff);//FFFF
C 货币
 2.5.ToString("C")  ¥2.50
D  十进制数
25.ToString("D5")    00025
E科学型
 25000.ToString("E")   2.500000E+005
F  固定点
 25.ToString("F2")    25.00
G 常规
 2.5.ToString("G")     2.5
N 数字
 2500000.ToString("N")      2,500,000.00
X  十六进制
 255.ToString("X")     FF
formatCode是可选的格式化代码字符串。(详细内容请搜索“格式化字符串”查看)
必须用“{”和“}”将格式与其他字符分开。如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,即:“{{”或者“}}”。
常用格式举例:
(1) int i=12345;
this.textBox1.Text=i.ToString();
//结果 12345(this指当前对象,或叫当前类的实例)
this.textBox2.Text=i.ToString("d8");
//结果 00012345
(2) int i=123;
double j=123.45;
string s1=string.Format("the value is{0,7:d}",i);
string s2=string.Format("the value is{0,7:f3}",j);
this.textBox1.Text=s1 ;
//结果 the value is 123
this.textBox2.Text=s2;
//结果 the value is123.450
(3)double i=12345.6789;
this.textBox1.Text=i.ToString("f2");//结果 12345.68
this.textBox2.Text=i.ToString("f6");
//结果 12345.678900
(4)double i=12345.6789;
this.textBox1.Text=i.ToString("n");//结果 12,345.68
this.textBox2.Text=i.ToString(“n4”); //结果12,345.6789
(5)double i=0.126;
string s=string.Format("the value is{0:p}",i);
this.textBox1.Text=i.ToString("p");//结果 12.6%
this.textBox2.Text=s; //结果 the valueis 12.6%
(6) DateTime dt =new DateTime(2003,5,25);
this.textBox1.Text=dt.ToString("yy.M.d");
//结果 03.5.25
this.textBox2.Text=dt.ToString(“yyyy年M月”);
//结果 2003年5月
Convert.ToDateTime("2005/12/2222:22:22").ToString("yyyy/MM/dd HH:mm:ss")
"2005/12/22 22:22:22"
(7) int i=123;
double j=123.45;
strings=string.Format("i:{0,-7},j:{1,7}",i,j);
//-7表示左对齐,占7位
this.textBox1.Text=s ;
//结果i:123 ,j: 123.45
 
 
补充:
1、C#中用最简单的方法把数字(不含小数)转换为千分位格式:
     如1234567变成1,234,567
    方法:1234567.ToString("###,###")  或  1234567.ToString("N0") 
 
2、C#中把数字转换成带两位小数的千分位字符:
    如1234567.891变成1,234,567.89
    方法:String.Format("{0:N}",1234567.891);  //默认为两位小数,如果没有小数位,则小数位补两个0
    或:String.Format("{0:N2}",1234567.891);

«1»