Форматировать число, используя «пространство цифр»? - PullRequest
0 голосов
/ 15 февраля 2019

Обычно string.Format () использует пробельные символы (\ u0020) в качестве начальных пробелов при форматировании чисел.Поскольку пробельные символы меньше цифр, ширина графического представления строки зависит от количества пробелов.

Можно ли как-нибудь указать string.Format () использовать "пространство цифр" (\ u2007) вместо «пробел» (\ u0020), чтобы ширина строки не зависела от количества пробелов?

Я не хотел бы добавлять .Replace ('', '\ u2007') в каждой строке. Формат ().

Пример (тот же эффект в html):
обычные пробелы: string.Format("{0,8:F1}\r{1,8:F1}", x, y)
12345.6
7.8
пробелы в символах: string.Format("{0,8:F1}\r{1,8:F1}", x, y).Replace(' ', '\u2007')
12345,6
7,8

1 Ответ

0 голосов
/ 21 февраля 2019

К сожалению, места для заполнения жестко закодированы.

https://source.dot.net/#System.Private.CoreLib/shared/System/Text/StringBuilder.cs,1766

Вы можете использовать такие вещи, как x.ToString("F1").PadLeft(8, '\u2007')

...