似乎这应该是直截了当的,但我无法做到正确。我查看http://idunno.org/archive/2004/14/01/122.aspx作为参考。
实施例: 我想打印一个双值表,每个双输出具有3个十进制精度,并占用10个空格(左对齐)。从概念上讲,我尝试过类似的东西,但它只适用于精确的OR填充,而不是两者:
foreach(line in lines)
{
foreach (double val in line)
{
Console.Write("{0:0.000,-10}", val);
}
Console.WriteLine()
}
更新:我可以在非常简单的场景中使用padleft / padright,如果我有更复杂的输出它变得不是很简洁。是否有类似于sprintf的东西?
答案 0 :(得分:8)
尝试
double d = 3.14;
Console.WriteLine("{0,10:0.000}", d);
P.S:看看this article作为字符串格式的入门读物。另外,string.Format
应该允许你做sprintf所做的一切 - 实际上更多......你还想做什么?
答案 1 :(得分:-1)
有用
|{0,-10:0.00}| => |87,87 | - With "-"
=> padRight
|{0,10:0.000}| => | 87,878| - Without "-"
=> padLeft
|{3,-10:0.###}| - ###
- 只有在有意义(不是0)的情况下才会打印小数后面的数字“,”:87,8000 => 87,8