Номер формата в строку, такой, что помещения вставляются, а не 0 с.C#

Место общения программистов C#
Anonymous
 Номер формата в строку, такой, что помещения вставляются, а не 0 с.

Сообщение Anonymous »

Когда вы конвертируете какое -то число в строку и проходите в формате, таком как «00», он вставит 0, если номер не имеет цифр, заполняющих это место. Пример: < /p>

Код: Выделить всё

1.ToString("00") -> "01"

Я хочу такую ​​функциональность, но где используется пространство, а не 0, если цифра не заполняет ее. С приведенным выше примером, который будет выглядеть как < /p>

Код: Выделить всё

1.ToString("unknownFormat") -> " 1"

Просто накладка не может решить мой конкретный случай использования. Это потому, что мне нужны персонажи, которые поступают как после, так и перед этими пространствами. Вот пример того, что я делаю сейчас, это результат, и что я хочу произвести: < /p>
Вот мой текущий формат:

Код: Выделить всё

format = "+##\,000;-##\,000"< /code> < /p>
Вот что он в настоящее время производит с различными числами:

25.ToString(format)   -> "+,025"< /code>

-300.ToString(format) -> "-,300"< /code>

1236.ToString(format) -> "+1,236"< /code> < /p>
Вот что я хочу, чтобы эти числа производили вместо этого:

25.ToString(format)   -> "+  ,025"< /code>

-300.ToString(format) -> "-  ,300"< /code>

1236.ToString(format) -> "+ 1,236"

Вот почему прокладки и аналогичные решения не работают в моем варианте использования. Насколько я могу судить, это просто невозможно при форматировании строки. Но это удивляет меня, и это не та область, в которой я экспрессию, поэтому я надеюсь, что я ошибаюсь, и кто -то здесь знает волшебный соус. Спасибо за время в любом случае!

Подробнее здесь: https://stackoverflow.com/questions/794 ... er-than-0s

Вернуться в «C#»