.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.141592653589793.143.14PI=3.142,e=2.718PI=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=12345a=12,345.00a=12,345a=12,345.0a=12,345.00a=12,345.000b=1234.567b=1,235b=1,234.6b=1,234.572、补零和截断代码:{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=12345a=12345a=012345b=1234.567b=1234.57b=001234.5670b=1234.57b=1234.567b=001234.567b=1234.56703、对齐代码:{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= 12b= 123c= 12345d= 12.34a=[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.00a=¥123.0a=¥123.00a=¥123.000a=¥123.0000b=¥123.45b=¥123.5b=¥123.45b=¥123.450b=¥123.45005、日期代码:{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:29Now:2020/5/9 8:15:29Now:2020/5/9 8:15Now:2020年5月9日Now:2020/5/9Now:2020年5月9日 8:15:29Now:2020年5月9日 8:15Now:8:15:29Now:8:15Now:5月9日Now:2020-05-09 08:15:296、科学计数法代码:{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+002b=1E+002b=1.2E+002b=1.23E+002b=1.235E+002b=1.2345000000E+0027、百分号代码:{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=1E2Fb=FAa=00001E2Fb=000000FA