如何制定Decimal的精度

1.使用標準數字格式字符串

float f = 321.12345F;
f.ToString("F3");

結果爲321.123

標準數字格式字符串的定義如下:

 

格式說明符名稱說明

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

 

 

2、使用System.Math.Round函數可以指定小數位數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章