格式項的文法是 {index[,alignment][:formatString]},它指定了一個強制索引、格式化文本的可選長度和對齊,以及格式說明符字元的可選字串,其中格式說明符字元用於控制如何設定相應對象的值的格式。
alignment:指示參數的佔位狀況。如:{0, 8}表示參數居右,如果參數佔位小於8,則在參數前多出(8-參數佔位數)的空格;{0,-8}表示參數居左,如果參數佔位小於8,則在參數後多出(8-參數佔位數)的空格。
formatString:
C 或 c
貨幣
數字轉換為表示貨幣金額的字串。轉換由用于格式化數位 NumberFormatInfo 對象的貨幣格式資訊控制。有效位數規範指示所需的小數位元。如果省略有效位數規範,則使用 NumberFormatInfo 給定的預設貨幣精度。
D 或 d
十進位數
只有整型才支援此格式。數字轉換為十進位數字 (0-9) 的字串,如果數字為負,則前面加負號。有效位數規範指示結果字串中所需的最少數字個數。如果需要的話,則用零填充該數位左側,以產生有效位數規範給定的數字個數。
E 或 e
科學計數法(指數)
數字轉換為“-d.ddd…E+ddd”或“-d.ddd…e+ddd”形式的字串,其中每個“d”表示一個數字 (0-9)。如果該數字為負,則該字串以減號開頭。小數點前總有一個數字。有效位數規範指示小數點後所需的位元。如果省略有效位數規範,則使用預設值,即小數點後六位元字。格式說明符的大小寫指示在指數前加首碼“E”還是“e”。指數總是由正號或負號以及最少三位元字組成。如果需要,用零填充指數以滿足最少三位元字的要求。
F 或 f
固定點
數字轉換為“-ddd.ddd…”形式的字串,其中每個“d”表示一個數字 (0-9)。如果該數字為負,則該字串以減號開頭。有效位數規範指示所需的小數位元。如果忽略有效位數規範,則使用 NumberFormatInfo 給定的預設數值精度。
G 或 g
常規
根據數字類型以及是否存在有效位數規範,數字會轉換為固定點或科學記號標記法的最緊湊形式。如果有效位數規範被省略或為零,則數位類型決定預設精度,如下表所示。
Byte 或 SByte:3
Int16 或 UInt16:5
Int32 或 UInt32:10
Int64 或 UInt64:19
Single:7
Double:15
Decimal:29
如果用科學記號標記法表示數字時指數大於 -5 而且小於有效位數規範,則使用固定點標記法;否則使用科學記號標記法。如果要求有小數點,並且忽略尾部零,則結果包含小數點。如果有效位數規範存在,並且結果的有效數字位元超過指定精度,則通過舍入刪除多餘的尾部數字。使用科學記號標記法時,如果格式說明符是“G”,結果的指數帶首碼“E”;如果格式說明符是“g”,結果的指數帶首碼“e”。
上述規則有一個例外:如果數字是 Decimal 而且省略有效位數規範時。在這種情況下總使用固定點標記法並保留尾部零。
N 或 n
數字
數字轉換為“-d,ddd,ddd.ddd…”形式的字串,其中每個“d”表示一個數字 (0-9)。如果該數字為負,則該字串以減號開頭。小數點左邊每三個數字之間插入一個千位分隔字元。有效位數規範指示所需的小數位元。如果忽略有效位數規範,則使用 NumberFormatInfo 給定的預設數值精度。
P 或 p
百分比
數字轉換為由 NumberFormatInfo.PercentNegativePattern 屬性或 NumberFormatInfo.PercentPositivePattern 屬性定義的、表示百分比的字串。如果數字為負,則產生的字串由 PercentNegativePattern 定義並以負號開頭。已轉換的數字乘以 100 以表示為百分比。有效位數規範指示所需的小數位元。如果省略有效位數規範,則使用 NumberFormatInfo 給定的預設數值精度。
R 或 r
往返過程
往返過程說明符保證轉換為字串的數值再次被分析為相同的數值。使用此說明符格式化數值時,首先使用常規格式對其進行測試:Double 使用 15 位精度,Single 使用 7 位精度。如果此值被成功地分析回相同的數值,則使用常規格式說明符對其進行格式化。但是,如果此值未被成功地分析為相同數值,則它這樣格式化:Double 使用 17 位精度,Single 使用 9 位精度。雖然有效位數規範可以追加到往返過程格式說明符,但它將被忽略。使用此說明符時,往返過程優先於精度。此格式僅受浮點型支援。
X 或 x
十六進位數
數字轉換為十六進位數位字串。格式說明符的大小寫指示對大於 9 的十六進位數字使用大寫字元還是小寫字元。例如,使用“X”產生“ABCDEF”,使用“x”產生“abcdef”。有效位數規範指示結果字串中所需的最少數字個數。如果需要的話,則用零填充該數位左側,以產生有效位數規範給定的數字個數。只有整型才支援此格式。