c#入门-格式说明符

格式说明符

部分的类可以在ToString的时候添加一个参数。
或者在格式字符串添加一个格式说明符。

int i = 12;
Console.WriteLine(i.ToString("x2"));
Console.WriteLine($"{i:x2}");

这是部分类型才有的功能。

主要讲数字的部分说明符,更多内容点这里

数字的格式说明符

D

十进制补位说明符,使用D+数字,可以把整数补零,
直到数字达到指定位数。
已经超出位数的无效。

int i=12;
Console.WriteLine(i.ToString("d4"));//0012
i = 12345;
Console.WriteLine(i.ToString("d3"));//12345

E

科学计数法,e的大小写决定了输出字符串e的大小写。
e后面的数字决定了小数点后有几位数

int i=12;
Console.WriteLine(i.ToString("e3"));//1.200e+xx
i = 12345;
Console.WriteLine(i.ToString("e0"));//1e+xx

F

定点数。可以控制小数的位数(会四舍五入)

double d = 1.0 / 7;
Console.WriteLine(d.ToString("f3"));//0.143
Console.WriteLine(d.ToString("f8"));//0.14285714
Console.WriteLine(d.ToString());//0.14285714285714285

X

16进制数。x的大小写决定了16进制下字母部分的大小写
后面跟随的数字是补0至至少多少位数

int d = 666;
Console.WriteLine(d.ToString("x3"));//29a
Console.WriteLine(d.ToString("x8"));//0000029a

自定义格式说明符

如果你想给你的类也加上这个功能,需要实现IFormattable接口

{
	public int price;
	public string name;
	public string ToString(string s)
	{
		return ToString(s, default);
	}

	public string ToString(string format, IFormatProvider formatProvider)
	{

		if (format == "price")
			return price.ToString();
		if (format == "name")
			return name?.ToString();
		return ToString();
	}
}
Book b = new Book() { price = 12, name = "绿里奇迹" };
Console.WriteLine($"{b:name}");

你可能感兴趣的:(#,流程控制,c#)