使用printf我可以使用*指定精度值作为额外参数。 C#String.Format中是否存在相同的功能?精度说明符作为参数像printf,但在String.Format中
编辑:例如:
Console.WriteLine("{0:D*}",1,4); // Outputs 0001
使用printf我可以使用*指定精度值作为额外参数。 C#String.Format中是否存在相同的功能?精度说明符作为参数像printf,但在String.Format中
编辑:例如:
Console.WriteLine("{0:D*}",1,4); // Outputs 0001
不,的String.Format不支持星操作。你需要为使用字符串连接
Console.WriteLine("{0:D" + myPrecision.ToString() + "}",1);
或嵌套String.Format
小号
Console.WriteLine(String.Format("{{0:D{0}}}", 4), 1);
是的,这是可能的。您只需要在格式说明符后添加精度数字。例如,
Console.WriteLine("{0:D4}",1); // Outputs 0001;
精度修饰符所做的特定于所选格式类型。在这种情况下,D代表十进制输出。这里是一个数字格式类型的链接,以及每个数字格式的精确含义。
格式化格式字符串应该做的伎俩:
var number = 1;
var width = 4;
Console.WriteLine(String.Format("{{0:D{0}}}", width), number);
它将输出0001
。
请注意如何使用{{
和}}
以格式字符串转义{
和}
。
+1用于解释转义括号的语法。 – Heinzi 2010-08-29 22:30:21
格式化指定长度左对齐的字符串。
int len = 20;
string fmt = string.Format("{{0,-{0}}}", len);
string name = string.Format(fmt, "a persons name");
或
name.PadRight(len);
结果应该是在右侧填充为20个字符的总长度的名称。
我的解决方法类似于Qt如何实现QString::arg()
。我只是放置一个占位符,然后用numericPrecision
的值替换它。
numericPrecision = "N2";
var summary = string.Format(
"{0}: {1:_np_}, {2}: {3:_np_}, {4}: {5:_np_}".Replace("_np_", numericPrecision),
title1, value1,
title2, value2,
title3, value3);
不,我要的是: Console.WriteLine(“{0:D *}”,1,4); //输出0001; – Sprintstar 2010-08-27 07:44:00
那么你的问题的答案是否定的,@Sprintstar,c#实现相同功能的类似语法。 – 2010-08-27 08:04:03