Спецификатор точности в качестве параметра, подобного printf, но в String.Format.

Используя printf, я мог бы указать значение точности как дополнительный параметр, используя *. Есть ли такая же функциональность в C # String.Format?

edit: Например:

Console.WriteLine("{0:D*}",1,4); // Outputs 0001
8
задан Sprintstar 6 March 2013 в 17:29
поделиться

3 ответа

Нет, String.Format не поддерживает оператор звездочки. Вам нужно будет использовать либо конкатенацию строк

Console.WriteLine("{0:D" + myPrecision.ToString() + "}",1);

, либо вложенный String.Formats

Console.WriteLine(String.Format("{{0:D{0}}}", 4), 1);
4
ответ дан 5 December 2019 в 15:16
поделиться

Да, это возможно. Вам просто нужно добавить число точности после спецификатора формата. Например

Console.WriteLine("{0:D4}",1); // Outputs 0001;

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

2
ответ дан 5 December 2019 в 15:16
поделиться

Форматирование строки формата должно помочь:

var number = 1;
var width = 4;
Console.WriteLine(String.Format("{{0:D{0}}}", width), number);

Будет выведено 0001.

Обратите внимание, как {{ и }} используются для экранирования { и } в строке формата.

4
ответ дан 5 December 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: