標準數字格式字串

2021-09-05 14:36:55 字數 2490 閱讀 1259

格式說明符 名稱 說明

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」。精度說明符指示結果字串中所需的最少數字個數。如果需要的話,則用零填充該數字的左側,以產生精度說明符給定的數字個數。只有整型才支援此格式。

格式化數值:有時,我們可能需要將數值以一定的格式來呈現,就需要對數值進行格式化。我們使用格式字串指定格式。格式字串採用以下形式:axx,其中 a 為格式說明符,指定格式化型別,xx 為精度說明符,控制格式化輸出的有效位數或小數字數。

格式說明符

說明示例輸出c

貨幣2.5.tostring("c")

¥2.50

d十進位制數

25.tostring("d5")

00025

e科學型

25000.tostring("e")

2.500000e+005

f固定點

25.tostring("f2")

25.00g常規

2.5.tostring("g")

2.5n

數字2500000.tostring("n")

2,500,000.00

x十六進製制

255.tostring("x")ff

標準數字格式字串輸出示例

msdn 下列表包含通過使用標準數字格式字串生成輸出的幾個示例。下列表中的每一列對應於標準數字格式字串主題中的一行。通過結合使用tostring方法與標準數值格式說明符以及特定資料型別 值和區域性生成輸出。格式字串 區域性資料型別值輸出 cen us double 12345.6789 12,345...

標準數字字串

c 或 c 貨幣結果 貨幣值。受以下型別支援 所有數值型別。精度說明符 小數字數。預設值精度說明符 由 numberformatinfo.currencydecimaldigits 定義。更多資訊 貨幣 c 格式說明符。123.456 c en us 123.46 123.456 c fr fr 1...

C 數字格式字串

使用c 格式化字串 1 前言 如果你熟悉microsoft foundation classes mfc 的cstring,windows template library wtl 的cstring或者standard template library stl 的字串類,那麼你對string.for...