天天看點

C# string.Format使用說明

string.Format的五種重載:

string.Format(string,object)将指定字元串中的一個或多個格式項替換為指定對象的字元串表示形式。

string.Format(string,object,object)将指定字元串中的格式項替換為兩個指定對象的字元串表示形式。

string.Format(string,object,object)将指定字元串中的格式項替換為三個指定對象的字元串表示形式。

string.Format(string,params object[])将指定字元串中的格式項替換為指定數組中相應對象的字元串表示形式。

string.Format(System.IFormatProvider,string,params object[])将指定字元串中的格式項替換為指定數組中相應對象的字元串表示形式。指定的參數提供區域性特定的格式設定資訊。

常用的數值格式化指令:

字元 說明 示例 輸出
C 貨币 string.Format("{0:C}", 9) ¥9.00
D 十進制 string.Format("{0:D}", 9) 9
E 科學計數法 string.Format("{0:E}", 12345) 1.234500E+004
F 小數 string.Format("{0:F}", 12345) 12345.00
G 正常 string.Format("{0:G}", 12345) 12345
N 用逗号隔開的數字 string.Format("{0:N}", 12345) 12,345.00
P 百分比 string.Format("{0:P}", 0.12345) 12.35%
X 十六進制 string.Format("{0:X}", 12) C
占位符 string.Format("{0:000.000}", 12.3) 012.300

1、格式化為貨币形式

string.Format("{0:C}",9);   //¥9.00(英文作業系統結果:$9.00)

string.Format("{0:C1}",9.67); //¥9.7(截取時自動四舍五入)

string.Format("{0:c}",9);    //¥9.00

string.Format("{0:c1}",9.67);  //¥9.7

格式化多個object對象

string.Format(“原價{0:c1},活動價{1:c3}”, 9,7.8666); //原價¥9.0,活動價¥7.867

2、格式化為十進制形式(僅限整型)

string.Format("{0:D}",9);    //9

string.Format("{0:D3}",9);    //009,精度表示結果字元串的最小長度

string.Format("{0:D3}",12345); //12345,結果字元串的長度不會小于資料原廠度

string.Format("{0:d}",9);    //9

string.Format("{0:d3}",9);    //009

string.Format("{0:d3}",12345); //12345

3、格式化為科學計數法形式

string.Format("{0:E}",12345); //1.234500E+004

string.Format("{0:E3}",12345); //1.235E+004

string.Format("{0:e}",12345); //1.234500e+004

string.Format("{0:e3}",12345); //1.235e+004

4、格式化為小數形式

string.Format("{0:F}",123.678); //123.68,預設保留兩位小數且截取時自動四舍五入

string.Format("{0:F3}",123.678); //123.678

string.Format("{0:f}",123.678); //123.68

string.Format("{0:f3}",123.678); //123.678

5、格式化為正常形式

string.Format("{0:G}",12345); //12345

string.Format("{0:G3}",12345); //1.23E+04

string.Format("{0:g}",12345); //12345

string.Format("{0:g3}",12345); //1.23e+04

6、格式化為用逗号隔開的數字形式

string.Format("{N}",12345); //12,345.00,預設保留兩位小數

string.Format("{N3}",12345); //12,345.000

string.Format("{n}",12345); //12,345.00

string.Format("{n3}",12345); //12,345.000

7、格式化為百分數形式

string.Format("{0:P}",0.12345); //12.35%,預設保留兩位小數且截取時自動四舍五入

string.Format("{0:P3}",0.12345); //12.345%

string.Format("{0:p}",0.12345); //12.35%

string.Format("{0:p3}",0.12345); //12.345%

8、格式化為十六進制形式(僅限整數)

string.Format("{0:X}",12); //C

string.Format("{0:X3}",12); //00C

string.Format("{0:x}",12); //c

string.Format("{0:x3}",12); //00c

9、格式化為占位符形式

string.Format("{0:000.00}",12.056); //012.06

string.Format("{0:000.00}",12.003); //012.00

string.Format("{0:000.00}",12.3);   //012.30

string.Format("{0:###.##}",12.056); //12.06

string.Format("{0:###.##}",12.003); //12

string.Format("{0:###.##}",12.3);  //12.3

10、指定字元串寬度進行對齊

string.Format("{0,-9}",str);//這個表示第一個參數str字元串的寬度為9,左對齊

string.Format("{0,9}",str);//這個表示第一個參數str字元串的寬度為9,右對齊

零占位符:如果格式化的值在格式字元串中出現“0”的位置有一個數字,則此數字被複制到結果字元串中。小數點前最左邊的“0”的位置和小數點後最右邊的“0”的位置确定總在結果字元串中出現的數字範圍。“00”格式字元串使得值被舍入到小數點前一位的數字,其中零不被舍去。

數字占位符:如果格式化的值在格式字元串中出現“#”的位置有一個數字,則此數字被複制到結果字元串中。否則,結果字元串中的此位置不存儲任何值。“##”格式字元串使得值被舍入到小數點前一位的數字,其中零總要被舍去。

請注意:如果“0”不是有效數字,此說明符永不顯示“0”字元,即使“0”是字元串中唯一的數字。如果“0”是所顯示的數字中的有效數字,則顯示“0”字元。