Используя printf, я мог бы указать значение точности как дополнительный параметр, используя *. Есть ли такая же функциональность в C # String.Format?
edit: Например:
Console.WriteLine("{0:D*}",1,4); // Outputs 0001
Нет, String.Format не поддерживает оператор звездочки. Вам нужно будет использовать либо конкатенацию строк
Console.WriteLine("{0:D" + myPrecision.ToString() + "}",1);
, либо вложенный String.Format
s
Console.WriteLine(String.Format("{{0:D{0}}}", 4), 1);
Да, это возможно. Вам просто нужно добавить число точности после спецификатора формата. Например
Console.WriteLine("{0:D4}",1); // Outputs 0001;
То, что делает модификатор точности, зависит от выбранного типа формата. В этом случае D означает десятичный вывод. Вот ссылка на типы числовых форматов и то, что означает точность для каждого из них.
Форматирование строки формата должно помочь:
var number = 1;
var width = 4;
Console.WriteLine(String.Format("{{0:D{0}}}", width), number);
Будет выведено 0001
.
Обратите внимание, как {{
и }}
используются для экранирования {
и }
в строке формата.