2010-08-26 38 views

回答

4

不,的String.Format不支持星操作。你需要为使用字符串连接

Console.WriteLine("{0:D" + myPrecision.ToString() + "}",1); 

或嵌套String.Format小号

Console.WriteLine(String.Format("{{0:D{0}}}", 4), 1); 
2

是的,这是可能的。您只需要在格式说明符后添加精度数字。例如,

Console.WriteLine("{0:D4}",1); // Outputs 0001; 

精度修饰符所做的特定于所选格式类型。在这种情况下,D代表十进制输出。这里是一个数字格式类型的链接,以及每个数字格式的精确含义。

+0

不,我要的是: Console.WriteLine(“{0:D *}”,1,4); //输出0001; – Sprintstar 2010-08-27 07:44:00

+0

那么你的问题的答案是否定的,@Sprintstar,c#实现相同功能的类似语法。 – 2010-08-27 08:04:03

4

格式化格式字符串应该做的伎俩:

var number = 1; 
var width = 4; 
Console.WriteLine(String.Format("{{0:D{0}}}", width), number); 

它将输出0001

请注意如何使用{{}}以格式字符串转义{}

+2

+1用于解释转义括号的语法。 – Heinzi 2010-08-29 22:30:21

0

格式化指定长度左对齐的字符串。

int len = 20; 
string fmt = string.Format("{{0,-{0}}}", len); 
string name = string.Format(fmt, "a persons name"); 

name.PadRight(len); 

结果应该是在右侧填充为20个字符的总长度的名称。

1

我的解决方法类似于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); 
相关问题