摘要:[C#] 格式化數值
有時候會忘記,格式輸出怎麼寫。
找了一些連結參考,下次這樣忘了,就可以來這邊查。
msdn.microsoft.com/zh-tw/library/s8s7t687.aspx
msdn.microsoft.com/zh-tw/library/0c899ak8%28VS.80%29.aspx
www.cnblogs.com/tuyile006/archive/2006/07/13/449884.aspx
格式化數值結果表 (C# 參考)
字元 | 說明 | 範例 | 輸出 |
---|---|---|---|
C 或 c | 貨幣 | Console.Write("{0:C}", 2.5); Console.Write("{0:C}", -2.5); | $2.50 ($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); Console.Write("{0:F0}", 25); | 25.00 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); Console.Write("{0:X}", 0xffff); | FA FFFF |
自訂數值格式字串
格式規範 | 名稱 | 描述 |
---|---|---|
0 | 零值預留位置 | 如果正在格式化的值有數字位於格式字串中出現 '0' 的位置上,那麼那個數字會複製到輸出字串。小數點前最左邊 '0' 和小數點後最右邊 '0' 的位置決定要一直在輸出字串中出現的位數範圍。 "00" 規範會造成數值捨入至最接近的小數點前面數值,而其中永遠使用遠離零的捨入方式。例如,使用 "00" 格式化 34.5 將會得到值 35。 |
# | 數字預留位置 | 如果正在格式化的值有數字位於格式字串中出現 '#' 的位置上,那麼那個數字會複製到輸出字串。否則,沒有東西會存放在結果字串中的那個位置。 注意,如果它不是有效位數的話,這個規範不會顯示 '0' 字元,即使 '0' 是字串中的唯一數字也一樣。如果是正在顯示的數值的有效位數,會顯示 '0' 字元。 "##" 格式字串會造成數值捨入至最接近的小數點前面數值,而其中永遠使用遠離零的捨入方式。例如,使用 "##" 格式化 34.5 將會得到值 35。 |
. | 小數點 | 格式字串中第一個 '.' 字元決定格式化的值中小數分隔符號的位置;任何額外 '.' 字元將被忽略。 當做小數分隔符號的實際字元由控制格式的 NumberFormatInfo 的 NumberDecimalSeparator 屬性來決定。 |
, | 千位分隔符號和數值縮放 | ',' 字元可當做千位分隔符號規範和數值縮放規範使用。 千位分隔符號規範:如果在兩個採用數字之整數格式的數字替代符號 (Placeholder) (0 或 #) 之間指定一或多個 ',' 字元,則會在每個數字群組輸出的整數部分之間插入群組分隔符號字元。 目前 NumberFormatInfo 物件的 NumberGroupSeparator 和 NumberGroupSizes 屬性會判斷當做數字群組分隔符號使用的字元,以及每個數字群組的大小。例如,如果使用字串 "#,#" 和不變的文化特性來格式化數字 1000,則輸出為 "1,000"。 數值縮放規範:如果在緊接著明確或隱含小數點的左側指定了一或多個 ',' 字元,則每次發生數值縮放規範時,要進行格式化的數字會除以 1000。例如,如果使用字串 "0,," 來格式化數字 1 億,則其輸出為 "100"。 您可以在相同的格式字串內使用千位分隔符號和數值縮放規範。例如,如果使用字串 "#,0,," 和不變的文化特性來格式化數字 10 億,則輸出為 "1,000"。 |
% | 百分比預留位置 | 格式字串中 '%' 字元的出現會使數值在格式化之前被乘以 100。適當符號會在格式字串中 '%' 出現的位置上插入數值本身。使用的百分比字元取決於目前的 NumberFormatInfo 類別。 |
E0 E+0 E-0 e0 e+0 e-0 | 科學標記法 | 如 果字串 'E'、'E+'、'E-'、'e'、'e+' 或 'e-' 的任何一個出現在格式字串中,並有至少一個 '0' 字元緊接其後,那麼數值將使用科學標記法,以 'E' 或 'e' 插入數字和指數之間來格式化。接在科學標記法指標之後的 '0' 字元數目將決定要輸出的指數的最少位數。'E+' 和 'e+' 格式指示正負號字元 (正號或負號) 應該一直在指數前面。"E"、"E-"、"e" 或 "e-" 格式指示正負號字元應該只能放在負數指數前面。 |
\ | 逸出字元 | 在 C# 和 C++ 中,反斜線字元會造成格式字串中的下一個字元被解譯為逸出序列 (Escape Sequence)。它使用於傳統格式化序列,例如 "\n" (新行)。 某些語言中,逸出字元本身當做常值 (Literal) 時,必須在前面加上逸出字元。否則,編譯器會解譯字元為逸出序列。使用字串 "\\" 來顯示 '\'。 注意,這個逸出字元在 Visual Basic 中不支援;然而,ControlChars 提供相同功能。 |
'ABC' "ABC" | 常值字串 | 含括在單引號或雙引號中的字元會複製到結果字串,並且不影響格式。 |
; | 區段分隔符號 | ';' 字元被用來在格式字串中為正數、負數和零值分隔區段。 |
其他 | 所有其他字元 | 其他任何字元都會複製到結果字串,並且不影響格式。 |
另外:
十進制轉二進制& ?0 a/ |* Y _
Console.WriteLine(Convert.ToString(123, 2));
十進制轉八進制 V. K" O/ g0 K+ E' o" ]
Console.WriteLine(Convert.ToString(123, 8));5 c* H" C5 ~+ N I& ?
十進制轉十六進制+ q/ B' C( g7 B" B
Console.WriteLine(Convert.ToString(123, 16));- S2 u' q; X; z8 j; f
二進制轉十進制
Console.WriteLine(Convert.ToInt32(”100111101″, 2));
八進制轉十進制5 U# S& g, r9 B( v1 I4 J! [
Console.WriteLine(Convert.ToInt32(”123″, 8));. `$ I( Q" h4 X9 W A
十六進制轉十進制
Console.WriteLine(Convert.ToInt32(”FF”, 16));
三小俠 小弟獻醜,歡迎指教