Как добавить ведущие нули к новым интерполированным строкам C#?
Привет,
Я изо всех сил пытаюсь понять, как заполнить целочисленное поле ведущими нулями в новых интерполированных строках C#.
Согласно этой статье C#6: Интерполяция Строк, "Та же самая составная сила форматирования существует для указания таких вещей, как значащие цифры и ведущие нули."
В этой же статье есть ссылка на эту страницу: Строки Стандартных Числовых Форматов [^Согласно этой странице, что-то вроде "D2" должно использовать две цифры для целого числа и площадку с нулями. Когда я пробую его, кажется, что он ничего не делает.
Напр.
int x = 3; Console.WriteLine( $"Integer padded to two places: {x:D2}." );
Это печатает "3", а не"03".
Кто-нибудь знает, как это сделать?
Добрые пожелания ~ Патрик
PS-судя по обсуждению ниже, мне кажется, что я не был на 100% ясен в том, чего я пытаюсь достичь.
Я знаю, что числа всегда будут находиться в диапазоне 0 & lt;= x <= 99. Когда я получаю вход в диапазоне 0-9, я хочу, чтобы он добавил один ведущий ноль (например, 4 печатает "04", но 14 печатает "14"). Надеюсь, это прояснит вопрос.
Что я уже пробовал:
В дополнение к коду, показанному выше, я попробовал "##"," DD " и несколько других вариантов, которые я забыл.
Richard Deeming
Ваш код печатается 03
для меня.
Какой вывод вы получаете, используя более старый синтаксис?Console.WriteLine("X = {0:D2}", x);
Mario Z
Как и Ричард, я получаю ожидаемое "целое число" в двух местах: 03."
Какую версию VS вы используете? Это может быть проблема с версией, возможно, вы используете VS 2013 и сами скачали Roslyn, и в этом случае, возможно, вы используете более старый компилятор.
Patrick Skelton
Ммм... может быть, это проблема компилятора. На самом деле я нахожусь в приложении Xamarin.iOS, которое, как мне кажется, вполне может использовать компилятор Roslyn.
Если я попробую это сделать:
int x = 3;
строка s = строка.Формат ("{0:D2}", x );
Приставка.WriteLine( s );
Я все еще не получаю мягкого целого числа.
Richard Deeming
Похоже, это ошибка / "функция" в Xamarin.iOS; ваш код отлично работает в стандартном приложении .NET.