输出方法Console. WriteLine( )
Console. WriteLine()方法将数据输出到屏幕并加上一个回车换行符(若不加回车换行
符,可用Console. Write()方法)。
该方法类似于C语言中的printf()函数,
可以采用“{N[,M][:格式化字符串]}
”的形式格式化输出字符串,其中的参数含义如下。
①花括号({}
): 用来在输出字符串中插人变量的值。
②N
:表示输出变量的序号,从0开始,例如当N为0时,对应输出第1个变量的值;当
N为2时,对应输出第3个变量的值,依此类推。
③[,M]
:可选项,其中M表示输出的变量所占的字符个数。当这个值为负数时,输出的变量按照左对齐方式排列;如果这个值为正数,输出的变量按照右对齐方式排列。
④[:格式化字符串]
:可选项,因为在向控制台输出时常常需要指定输出字符串的格式。
通过使用标准数字格式字符串,可以使用Xn的形式来指定结果字符串的格式,其中X
指定数字的格式,n指定数字的精度,即有效数字的位数。这里提供了8个常用的格
式字符。
注意:在一个Write/ WriteLine方法中,N的序号是连续的,且从0开始。例如,以下语句
都是错误的:
Console. WriteLine("{0} and {2}",1.2);//序号不连续
Console. WriteLine("{1} and {2}".1,2);//序号不是从0开始的
格式字符 | 含义 | 示例 | 输出结果 |
---|---|---|---|
C或c | 将数据转换成货币格式 | Console. WriteLine("{0,5:c}", 123. 456); | ¥123.46 |
D或d | 整数数据类型格式 | Console. WriteLine("{0:D4}", 123); | 0123 |
E或e | 科学记数法格式 | Console. W riteLine("{0:E4}", 123. 456); | 1.2346E十002 |
F或f | 浮点数据类型格式 | Console. WriteLine("{0:f4}", 123. 456); | 123.4560 |
G或g | 通用格式 | Console. WriteLine("{0:g)", 123. 456); | 123.456 |
N或n | 自然数据格式 | Console. WriteLine("{0:n}", 123. 456); | 123.46 |
X或x | 十六进制数据格式 | Console. WriteLine("{0:x}", 12345); | 3039 |
举个详细的例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace day2_25
{class Program{static void Main(string[] args){double d = 123.456;Console.WriteLine("d={0:c2}",d);//d=¥123.46Console.WriteLine("d={0:c3}", d);//d=¥123.456Console.WriteLine("d={0:c4}", d);//d=¥123.4560Console.WriteLine("d={0,5:c2}", d);//d=¥123.46Console.WriteLine("d={0,6:c3}", d);//d=¥123.456Console.WriteLine("d={0,7:c4}", d);//d=¥123.4560Console.WriteLine("d={0,8:c4}", d);//d=¥123.4560//由上面的例子可以得出:{N[,M][:格式化字符串]} [:格式化字符串]的优先级要比[,M]高//即d={0,8:c4},.8代表宽度为8位,而c4代表将数据转换成货币格式且保留4位小数位,由于保留4位小数,故d只能为123.4560,7位数Console.WriteLine("d={0:e4}",d);//d=1.2346e+002Console.WriteLine("d={0,3:e5}", d);//d=1.23456e+002Console.WriteLine("d={0,4:e6}", d);//d=1.234560e+002//d={0,4:e6}其中e6表示6位小数位数Console.WriteLine("d={0:f4}",d);//d=123.4560Console.WriteLine("d={0:f5}", d);//d=123.45600Console.WriteLine("d={0:f6}", d);//d=123.456000Console.WriteLine("d={0,4:f4}", d);//d=123.4560Console.WriteLine("d={0,5:f5}", d);//d=123.45600Console.WriteLine("d={0,10:f10}", d);//d=123.4560000000//d={0,10:f10}其中f10表示浮点数的小数位数为10位,总宽度也为10位,如果相冲突,以后面的小数位数为准Console.WriteLine("d={0:g}",d);//d=123.456Console.WriteLine("d={0:g5}", d);//d=123.46Console.WriteLine("d={0:g6}", d);//d=123.456Console.WriteLine("d={0:g7}", d);//d=123.456//d={0:g7}按理说会有7位小数,但是由于d本身是123.456,而且运用的是g,所以精读最高到它本身,再多也无用//d={0:g}默认为原样输出Console.WriteLine("d={0:n}", d);//d=123.46Console.WriteLine("d={0:n2}", d);//d=123.46Console.WriteLine("d={0:n3}", d);//d=123.456Console.WriteLine("d={0:n4}", d);//d=123.4560Console.WriteLine("d={0:n5}", d);//d=123.45600Console.WriteLine("d={0:n6}", d);//d=123.456000Console.WriteLine("d={0:n7}", d);//d=123.4560000//d={0:n}默认为n2,保留两位小数位数Console.ReadLine();}}
}
运行输出结果如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace yy
{class Program{static void Main(string[] args){int a = 1234, b = -1234;Console.WriteLine("a={0},b={1}", a, b);//a=1234,b=-1234Console.WriteLine("a={0:D5},b={1:D5}", a, b);//a=01234,b=-01234Console.WriteLine("a={0:c3},b={1:c2}", a, b);//a=¥1,234.000,b=¥-1,234.00//a={0:D5},b={1:D5}其中D5表示一共5位数//a={0:c3},b={1:c2}其中c3和c2表示小数位数分别为3位和2位Console.ReadLine();}}
}
运行输出结果如下: