String.Format舉例(C#,VB.Net)
我自己在用到的:
String.Format("字串:{0:d5}", 12)
"字串:00012" '佔位5個,不足的用0代替
String.Format("字串:{0,5}", 12)
"字串: 12" '佔位5個,不足的用空格代替,靠右對齊
String.Format("字串:{0,-5}", 12)
"字串:12 " '佔位5個,不足的用空格代替,靠左對齊
?String.Format("字串:{0:#,0.0000}", 12)
"字串:12.0000"
?String.Format("字串:{0:#0,0.00}", 12)
"字串:12.00"
?String.Format("字串:{0:#0,0.00}", 12000)
"字串:12,000.00"
?String.Format("字串:{0:D#0.0000}", 12)
"字串:D12.0000"
?String.Format("字串:{0:D2.5}", 12)
"字串:D2125"
?String.Format("字串:{0:D0.0}", 12)
"字串:D12.0"
?String.Format("字串:{0:D0.0000}", 12)
"字串:D12.0000"
?String.Format("字串:{0:#00,0.00}", 12000)
"字串:12,000.00"
?String.Format("字串:{0:#00,0.00}", 12)
"字串:012.00"
?String.Format("字串:{0:#00,0.00}", 1200)
"字串:1,200.00"
?String.Format("字串:{0:#000.00}", 1200)
"字串:1200.00"
?String.Format("字串:{0:#000.00}", 12)
"字串:012.00"
?String.Format("字串:{0:#000.00}", 1)
"字串:001.00"
格式字元 名稱 說明
0
零預留位置
如果格式化的值在格式字串中出現“0”的位置有一個數字,則此數字被複製到輸出字串中。小數點前最左邊的“0”的位置和小數點後最右邊的“0”的位置確定總在輸出字串中出現的數字範圍。“00”說明符使得值被舍入到小數點前最近的數字,其中零位總被捨去。例如,用“00”格式化 34.5 將得到值 35。
#
數字預留位置
如果格式化的值在格式字串中出現“#”的位置有一個數字,則此數字被複製到輸出字串中。否則,輸出字串中的此位置不儲存任何值。請注意,如果“0”不是有效數字,此說明符永不顯示“0”字元,即使“0”是字串中唯一的數字。如果“0”是所顯示的數字中的有效數字,則顯示“0”字元。“##”格式字串使得值被舍入到小數點前最近的數字,其中零總被捨去。例如,用“##”格式化 34.5 將得到值 35。
.
小數點
格式字串中的第一個“.”字元確定格式化的值中的小數點分隔字元的位置;任何其他“.”字元被忽略。用作小數點分隔字元的實際字元由控制格式化的 NumberFormatInfo 的 NumberDecimalSeparator 屬性確定。
,
千位分隔字元和數字比例換算
“,”字元有兩種用途。首先,如果格式字串在小數點(如果有)左邊的兩個數字預留位置(0 或 #)之間包含“,”字元,則輸出將在小數點分隔字元左邊的每三個數字之間插入千位分隔字元。輸出字串中用作小數點分隔字元的實際字元由控制格式化的當前 NumberFormatInfo 的 NumberGroupSeparator 屬性確定。
其次,如果格式字串在緊鄰小數點的左側包含一個或多個“,”字元,則數字在格式化之前將被“,”字元數除然後乘以 1000。例如,格式字串“0,,”將 100,000,000 簡單表示為 100。使用“,”字元指示比例換算在格式化數字中不包括千位分隔字元。因此,若要將數字縮小 1,000,000 倍並插入千位分隔字元,應使用格式字串“#,##0,,”。
%
百分比預留位置
在格式字串中出現“%”字元將導致數字在格式化之前乘以 100。適當的符號插入到數字本身在格式字串中出現“%”的位置。使用的百分比字元由當前的 NumberFormatInfo 類確定。
常用的:字元型轉換 轉為字串
12345.ToString("n"); //產生 12,345.00
12345.ToString("C"); //產生 ¥12,345.00
12345.ToString("e"); //產生 1.234500e+004
12345.ToString("f4"); //產生 12345.0000
12345.ToString("x"); //產生 3039 (16進位)
12345.ToString("p"); //產生 1,234,500.00%
C# 格式化數值結果表(格式化字串)
C 貨幣 string.Format("{0:C3}", 2) $2.000
D 十進位 string.Format("{0:D3}", 2) 002
E 科學計數法 1.20E+001 1.20E+001
G 常規 string.Format("{0:G}", 2) 2
N 用分號隔開的數字 string.Format("{0:N}", 250000) 250,000.00
X 十六進位 string.Format("{0:X000}", 12) C
string.Format("{0:000.000}", 12.2) 012.200
MSDN格式化概述:
http://msdn.microsoft.com/zh-cn/library/26etazsy.aspx
MSDN複合格式化:
http://msdn.microsoft.com/zh-cn/library/txafckwd.aspx
自訂數字格式字串
http://msdn.microsoft.com/zh-cn/library/0c899ak8.aspx
補充內容:
來源: http://hi.baidu.com/wlx_sm/blog/item/d04b898b24bfe3d2fc1f1030.html
2007-04-13 10:01
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
------------------------
更多更詳細的內容:
www.yaosansi.com/post/360.html
http://blog.csdn.net/sunchaohuang/archive/2009/02/16/3894808.aspx
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/linjimu/archive/2009/04/18/4090575.aspx