C#在控制台应用中输出格式化数据
作者:Debuger 发布时间:April 12, 2022 分类:文章分享
转载:https://zhuanlan.zhihu.com/p/361468308
在控制台应用程序的Console.Write 方法,和Console.Writeline 方法的参数中,可以直接定义数据转换为字符串后的输出格式。常用形式为:
Console.Write( "格式化表示",参数序列 );
或者
Console.WriteLine( "格式化表示",参数序列 ) ;
格式化表示的一般形式:
{N[, M] [: 格式码]}
看下面这个例子,体会一下格式化的一般形式:
int x = 10, y = 20, z = 30;
Console.WriteLine("{0} + {1} + {2} = {3}", x, y, z, x+y+z);
Console.WriteLine("{3} = {1} + {2} + {0}", x, y, z, x+y+z);
N:指定参数序列中的输出序号。例如 {0}表示x, {1}表示y, {2}表示z。
M:指定参数输出的最小长度,如果参数长度小于M,就用空格填充;如果大于等于M,则按实际长度输出;如果M为负,则左对齐;如果M为正,则右对齐;如果未指定M,则默认为0。 {1,5}表示将参数y的值转换为字符串后按5位右对齐输出。
格式码:为可选的格式化代码字符串。 例如{1:00000}的输出结果为00020,含义是将参数y按五位数字输出,不够5位左边补0,超过5位按实际位数输出。
常用格式码
格式符 | 含义 | 示例 | 输出结果 |
---|---|---|---|
C | 将数字按照金额形式输出 | Console.WriteLine("{0:C}",10); Console.WriteLine("{0:C}",10.5); | ¥ 10.00 ¥ 10.50 |
D或d | 输出十进制整数。D后的数字表示输出位数,不够指定的位数时,左边补0 | Console.WriteLine("{0:D}",10); Console.WriteLine("{0:D5}",10); | 10 00010 |
F或f | 小数点后固定位数(四舍五入),F后面不指定位数时,默认为两位 | Console.WriteLine("{0:F}",10); Console.WriteLine("{0:F4}",10.56736);Console.WriteLine("{0:F2}",12345.6789);Console.WriteLine("{0:F3}",123.45); | 10.00 10.567412345.68123.450 |
N或n | 整数部分每3位用逗号分隔;小数点后固定位数(四舍五入),N后面不指定位数时,默认为两位 | Console.WriteLine("{0:n4}",12345.6789); | 12,345.6789 |
P或p | 以百分比形式输出,整数部分每三位用逗号分隔;小数点后固定位数(四舍五入),P后面不指定位数时,默认为两位 | Console.WriteLine("{0:p}",0.126); | 12.60% |
X或x | 按十六进制格式输出。X后的数字表示输出位数,不够指定的位数时,前面补0 | Console.WriteLine("{0:X}",10); Console.WriteLine("{0:X4}",10); | A 000A |
0 | 0 占位符,如果数字位数不够指定的占位符位数,则左边补 0 ;如果数字位数超过指定的占位符位数,则按照实际位数原样输出。如果小数部分的位数超出指定的占位符位数,则多余的部分四舍五入 | Console.WriteLine("{0:00000}",123); Console.WriteLine("{0:000}",12345);Console.WriteLine("{0:0000}"123.64);Console.WriteLine("{0:00.00}",123.6484); | 00123 123450124123.65 |
# | # 占位符。对整数部分,去掉数字左边的无效 0 ;对小数部分,按照四舍五入原则处理后,再去掉右边的无效 0 。如果这个数就是 0 ,而又不想让它显示的时候,# 占位符很有用 | Console.WriteLine("{0:####}",123); Console.WriteLine("{0:####}",123.64);Console.WriteLine("{0:####.###}",123.64);Console.WriteLine("{0:####.##}",0);Console.WriteLine("{0:####.##}",123.648); | 123 124123.64123.65 |