右对齐货币字符串(不带符号)

本文关键字:带符号 货币 字符串 右对齐 | 更新日期: 2023-09-27 18:26:58

我当前输出一个左对齐的货币值,使用以下内容:

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

我想修改字符串格式化程序,这样我就可以正确对齐它。我不知道如何在不影响现有格式化程序的情况下完成它。

有人能提供建议吗?

编辑:我知道它涉及类似于:

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

右对齐货币字符串(不带符号)

String.Format("{0,20:#,##0}", value);将执行此操作。

示例。

不太清楚你的实际意思,但我认为,你说的是

String.PadLeft方法。

示例:要向右"对齐",可以:

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

这将在字符串的前面添加"pad",与组成一个长度为10字符的字符串所需的数量一样多。选择更适合你的参数,它应该适用于你的情况。

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

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

对于web,使用div class="numeric"和text align="right"。

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

使用PadLeftPadRight

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