在將一個類型(通常是數字和時間)轉換成字元串時,可以控制其顯示的樣式。基本的寫法就是在調用ToString或Format方法時提供格式化參數,由於具體的參數記不住,每次用到都要上網搜索一番,浪費時間,所以總結一下以備忘。 ...
概述:
我們在將一個類型(通常是數字和時間)轉換成字元串時,可以控制其顯示的樣式。
基本的寫法就是在調用ToString或Format方法時提供格式化參數,由於具體的參數記不住,每次用到都要上網搜索一番,浪費時間,所以總結一下以備忘。
代碼:
{ double PI = 3.1415926535897932d; double e = 2.718281828459d;
Console.WriteLine(PI.ToString()); Console.WriteLine(PI.ToString("#.##")); Console.WriteLine(string.Format("{0:#.##}", PI)); Console.WriteLine(string.Format("PI={0:#.###},e={1:#.###}", PI, e)); Console.WriteLine($"PI={PI:#.#####},e={e:#.#####}"); Console.WriteLine(""); } |
輸出:
3.14159265358979 3.14 3.14 PI=3.142,e=2.718 PI=3.14159,e=2.71828 |
由於$"PI={PI:#.#####},e={e:#.#####}"這種寫法是最簡介的,下麵統一採用這種寫法。
1、逗號隔開的數字
代碼:
{ Console.WriteLine("用逗號隔開的數字"); int a = 12345; double b = 1234.567;
Console.WriteLine($"a={a}"); Console.WriteLine($"a={a:N}"); Console.WriteLine($"a={a:N0}"); Console.WriteLine($"a={a:N1}"); Console.WriteLine($"a={a:N2}"); Console.WriteLine($"a={a:N3}");
Console.WriteLine($"b={b}"); Console.WriteLine($"b={b:N0}"); Console.WriteLine($"b={b:N1}"); Console.WriteLine($"b={b:N2}"); } |
輸出:
用逗號隔開的數字 a=12345 a=12,345.00 a=12,345 a=12,345.0 a=12,345.00 a=12,345.000 b=1234.567 b=1,235 b=1,234.6 b=1,234.57 |
2、補零和截斷
代碼:
{ Console.WriteLine("補零和截斷"); int a = 12345; double b = 1234.567;
Console.WriteLine($"a={a}"); Console.WriteLine($"a={a:D3}"); Console.WriteLine($"a={a:D6}");
Console.WriteLine($"b={b}"); Console.WriteLine($"b={b:00.00}"); Console.WriteLine($"b={b:000000.0000}"); Console.WriteLine($"b={b:##.##}"); Console.WriteLine($"b={b:######.####}"); Console.WriteLine($"b={b:000000.####}"); Console.WriteLine($"b={b:######.0000}"); } |
輸出:
補零和截斷 a=12345 a=12345 a=012345 b=1234.567 b=1234.57 b=001234.5670 b=1234.57 b=1234.567 b=001234.567 b=1234.5670 |
3、對齊
代碼:
{ Console.WriteLine("對齊"); int a = 12; int b = 123; int c = 12345; float d = 12.34f;
Console.WriteLine($"a={a,8}"); Console.WriteLine($"b={b,8}"); Console.WriteLine($"c={c,8}"); Console.WriteLine($"d={d,8}");
Console.WriteLine($"a=[{a,-8}]"); Console.WriteLine($"b=[{b,-8}]"); Console.WriteLine($"c=[{c,-8}]"); Console.WriteLine($"d=[{d,-8}]"); } |
輸出:
對齊 a= 12 b= 123 c= 12345 d= 12.34 a=[12 ] b=[123 ] c=[12345 ] d=[12.34 ] |
4、貨幣
代碼:
{ Console.WriteLine("貨幣"); int a = 123; float b = 123.45f;
Console.WriteLine($"a={a:C}"); Console.WriteLine($"a={a:C1}"); Console.WriteLine($"a={a:C2}"); Console.WriteLine($"a={a:C3}"); Console.WriteLine($"a={a:C4}");
Console.WriteLine($"b={b:C}"); Console.WriteLine($"b={b:C1}"); Console.WriteLine($"b={b:C2}"); Console.WriteLine($"b={b:C3}"); Console.WriteLine($"b={b:C4}"); } |
輸出:
貨幣 a=¥123.00 a=¥123.0 a=¥123.00 a=¥123.000 a=¥123.0000 b=¥123.45 b=¥123.5 b=¥123.45 b=¥123.450 b=¥123.4500 |
5、日期
代碼:
{ Console.WriteLine("日期"); DateTime now = DateTime.Now; Console.WriteLine($"Now:{now}"); Console.WriteLine($"Now:{now:G}"); Console.WriteLine($"Now:{now:g}"); Console.WriteLine($"Now:{now:D}"); Console.WriteLine($"Now:{now:d}"); Console.WriteLine($"Now:{now:F}"); Console.WriteLine($"Now:{now:f}"); Console.WriteLine($"Now:{now:T}"); Console.WriteLine($"Now:{now:t}"); Console.WriteLine($"Now:{now:M}"); Console.WriteLine($"Now:{now:yyyy-MM-dd HH:mm:ss}"); } |
輸出:
日期 Now:2020/5/9 8:15:29 Now:2020/5/9 8:15:29 Now:2020/5/9 8:15 Now:2020年5月9日 Now:2020/5/9 Now:2020年5月9日 8:15:29 Now:2020年5月9日 8:15 Now:8:15:29 Now:8:15 Now:5月9日 Now:2020-05-09 08:15:29 |
6、科學計數法
代碼:
{ Console.WriteLine("科學計數法"); double b = 123.45d;
Console.WriteLine($"b={b:E}"); Console.WriteLine($"b={b:E0}"); Console.WriteLine($"b={b:E1}"); Console.WriteLine($"b={b:E2}"); Console.WriteLine($"b={b:E3}"); Console.WriteLine($"b={b:E10}"); } |
輸出:
科學計數法 b=1.234500E+002 b=1E+002 b=1.2E+002 b=1.23E+002 b=1.235E+002 b=1.2345000000E+002 |
7、百分號
代碼:
{ Console.WriteLine("百分號"); double b = 0.456d;
Console.WriteLine($"b={b:P}"); Console.WriteLine($"b={b:P0}"); Console.WriteLine($"b={b:P1}"); Console.WriteLine($"b={b:P2}"); } |
輸出:
百分號 b=45.60% b=46% b=45.6% b=45.60% |
8、十六進位
代碼:
{ Console.WriteLine("十六進位"); int a = 0x1E2F; int b = 250;
Console.WriteLine($"a={a:X}"); Console.WriteLine($"b={b:X}"); Console.WriteLine($"a={a:X8}"); Console.WriteLine($"b={b:X8}"); } |
輸出:
十六進位 a=1E2F b=FA a=00001E2F b=000000FA |