右对齐货币字符串(没有符号)?

时间:2012-03-05 10:34:33

标签: c# .net string-formatting

我目前使用以下内容输出左对齐的货币值:

String.Format(CultureInfo.CurrentCulture, "{0:#,##0}", value);

我希望修改字符串格式化程序,以便我可以正确对齐它。我不知道怎么做而不影响我现有的格式化程序。

有人可以提出建议吗?

编辑:我知道它涉及类似的事情:

http://www.csharp-examples.net/align-string-with-spaces/

4 个答案:

答案 0 :(得分:1)

String.Format("{0,20:#,##0}", value);会这样做。

Example.

答案 1 :(得分:0)

不太清楚你的意思是什么,但我假设,你在谈论

String.PadLeft方法。

示例:要“对齐”,你可以:

string hello  ="hello"; 
int supportedSymbCount = 10;
int padcount = supportedSymbCount - hello.Length;
if(padCount>0)
   hello = hello.PadLeft(padCount);

这将在字符串的中添加“pad”,只要需要组成一个字符串10字符即可。选择更适合您的参数,它应该适用于您的情况。

答案 2 :(得分:0)

对于控制台输出,使用制表符作为分隔符

Console.WriteLine( "\t{0:#,##0}", value )

对于网络使用div class =“numeric”with text-align =“right”。

对于其他输出,没有通用的解决方案。

答案 3 :(得分:0)

使用PadLeftPadRight

int iTotalLength = 20; // Total length of string
char cPadChar = '0'; // Padding character
String.Format(CultureInfo.CurrentCulture, "{0:#,##0}", value).PadLeft(iTotalLength, 
                                                                      cPadChar);