Выровнять строку валюты вправо (без символа)? - PullRequest
1 голос
/ 05 марта 2012

В настоящее время я вывожу значение валюты по левому краю, используя следующее:

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

Я хочу изменить форматировщик строки, чтобы выровнять его по правому краю. Я не уверен, как это сделать, не затрагивая мой существующий форматер.

Может кто-нибудь, пожалуйста, посоветовать?

РЕДАКТИРОВАТЬ: Я знаю, что это включает в себя нечто похожее на:

http://www.csharp -examples.net / ALIGN-строка-с-пространств /

Ответы [ 4 ]

1 голос
/ 05 марта 2012

String.Format("{0,20:#,##0}", value); сделает это.

Пример.

0 голосов
/ 05 марта 2012

Используйте PadLeft или PadRight

int iTotalLength = 20; // Total length of string
char cPadChar = '0'; // Padding character
String.Format(CultureInfo.CurrentCulture, "{0:#,##0}", value).PadLeft(iTotalLength, 
                                                                      cPadChar);
0 голосов
/ 05 марта 2012

Для вывода на консоль используйте символ табуляции в качестве разделителя,

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

Для веб-сайта используйте div class = "numeric" с text-align = "right".

Для других выходов нет общих решений.

0 голосов
/ 05 марта 2012

не очень понятно, что вы на самом деле имеете в виду, но я предположим, , вы говорите о

String.PadLeft методе.

Пример:чтобы «выровнять» вправо, вы можете:

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

Это добавит «пэды» в перед строки настолько, насколько необходимо составить строку до 10 символов,Выберите более подходящие параметры, и это должно работать в вашем случае.

...