Как мне отформатировать число в виде строки, чтобы ноль заменялся пустой строкой - PullRequest
3 голосов
/ 20 марта 2012

Мне нужно, чтобы это работало в одном выражении формата и работало как для целых, так и для десятичных чисел:

Например:

int myInt=0;
decimal myDecimal=0.0m;

// ... Some other code

string formattedResult1=String.Format("{0}",myInt);
string formattedResult2=String.Format("{0}",myDecimal);

Ожидаемые результаты:

"" (т.е. string.Empty), если форматируемый элемент равен нулю и числовое значение (например, «123.456» для десятичной версии), если это не так.

Мне нужно, чтобы это происходило исключительно в результате спецификации формата в строке формата.

Ответы [ 2 ]

9 голосов
/ 20 марта 2012

Это должно сделать:

string formattedResult1 = string.Format("{0:0.######;-0.######;\"\"}", myInt);

В двоеточии вводится строка числового формата. Строка числового формата разделена на 3 части точками с запятой: часть 1 для положительных чисел, часть 2 для отрицательных чисел и часть 3 для нулей. Чтобы определить пустую строку, вам нужно разделить ее двойными кавычками, иначе это не понравится.

Полный синтаксис см. MSDN .

1 голос
/ 05 апреля 2016

основываясь на принятом ответе выше, я сделал то же самое в Microsoft «построитель отчетов»

это сработало для меня (показывает 2 знака после запятой, пусто для нуля):

, ## 0,00; - #, ## 0.00; ""

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...