.NET字符串格式化


 概述:

我們在將一個類型(通常是數字和時間)轉換成字符串時,可以控制其顯示的樣式。

基本的寫法就是在調用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM