C#中ToString数据类型格式大全(千分符)
用DataFormatString格式化GridView
在GridView里面显示数据,要显示的数据有好多位小数,就想让它只显示两位小数,在delphi里,直接用DisplayFormat就行了,在.net中,查了半天msdn,发现使用DataFormatString是可以实现这个功能的,但是怎么设置就不起作用,最后发现,由于2.0出于安全性的考虑,还要同时设置HtmlEncode=false,才能够使DataFormatString生效.
留个记号,下次用的时候,就不用浪费N多时间了.
还有还有,DataFormatString="{0:F}",是默认格式,显示两位小数,如果需要显示的小数位数为其他值,DataFormatString="{0:Fn}"即可.
DataFormatString="{0:格式字符串}"
在DataFormatString中的{0}表示数据本身,而在冒号后面的格式字符串代表所们希望数据显示的格式;
数字、货币格式:
在指定的格式符号后可以指定小数所要显示的位数。例如原来的数据为「1.56」,若格式设定为{0:N1},则输出为「1.5」。其常用的数值格式如下表所示:
格式字符串输入结果
"{0:C}"12345.6789$12,345.68
"{0:C}"-12345.6789($12,345.68)
"{0:D}"1234512345
"{0:D8}"1234500012345
"{0:E}"12345.67891234568E+004
"{0:E10}"12345.67891.2345678900E+004
"{0:F}"12345.678912345.68
"{0:F0}"12345.678912346
"{0:G}"12345.678912345.6789
"{0:G7}"1234567891.234568E8
"{0:N}"12345.678912,345.68
"{0:N4}"123456789123,456,789.0000
"Total:{0:C}"12345.6789Total:$12345.68
常用的日期时间格式:
格式说明输出格式
d精简日期格式MM/dd/yyyy
D详细日期格式dddd,MMMMdd,yyyy
f完整格式(longdate+shorttime)dddd,MMMMdd,yyyyHH:mm
F
完整日期时间格式
(longdate+longtime)
dddd,MMMMdd,yyyyHH:mm:ss
g一般格式(shortdate+shorttime)MM/dd/yyyyHH:mm
G一般格式(shortdate+longtime)MM/dd/yyyyHH:mm:ss
m,M月日格式MMMMdd
s适中日期时间格式yyyy-MM-ddHH:mm:ss
t精简时间格式HH:mm
T详细时间格式HH:mm:ss
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)inti=12345;
this.textBox1.Text=i.ToString();
//结果12345(this指当前对象,或叫当前类的实例)
this.textBox2.Text=i.ToString("d8");
//结果00012345
(2)inti=123;
doublej=123.45;
strings1=string.Format("thevalueis{0,7:d}",i);
strings2=string.Format("thevalueis{0,7:f3}",j);
this.textBox1.Text=s1;
//结果thevalueis123
this.textBox2.Text=s2;
//结果thevalueis123.450
(3)doublei=12345.6789;
this.textBox1.Text=i.ToString("f2");//结果12345.68
this.textBox2.Text=i.ToString("f6");
//结果12345.678900
(4)doublei=12345.6789;
this.textBox1.Text=i.ToString("n");//结果12,345.68
this.textBox2.Text=i.ToString(“n4”);//结果12,345.6789
(5)doublei=0.126;
strings=string.Format("thevalueis{0:p}",i);
this.textBox1.Text=i.ToString("p");//结果12.6%
this.textBox2.Text=s;//结果thevalueis12.6%
(6)DateTimedt=newDateTime(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/ddHH:mm:ss")
"2005/12/2222:22:22"
(7)inti=123;
doublej=123.45;
strings=string.Format("i:{0,-7},j:{1,7}",i,j);
//-7表示左对齐,占7位
this.textBox1.Text=s;
//结果i:123,j:123.45