Почему 0.ToString("#.##")
возвращает пустую строку? Разве не должно быть 0.00
или хотя бы 0 ?
114
#
в строковом формате указывают, что значение не является обязательным. Если вы хотите получить результат, 0.00
вам понадобится следующее:
0.ToString("0.00");
См. Здесь пользовательские числовые форматы, которые можно передать этому методу.
Поскольку в строке формата
#
используется для обозначения необязательного символа-заполнителя; он используется только в случае необходимости для представления числа.Если вы сделаете это вместо этого:
0.ToString("0.##");
вы получите:0
Интересно, что если вы сделаете это:
0.ToString("#.0#");
вы получите:.0
Если вам нужны все три цифры:
0.ToString("0.00");
производит:0.00
Судя по комментариям к этому ответу, ваш аргумент выглядит так:
Ответ прост: у вас есть выбор, как вы хотите, чтобы это отображалось. Вот для чего нужны строки настраиваемого формата. Вы просто выбрали неверную строку формата для ваших нужд .
источник
Согласно документации о Digit Placeholder .
Если вы хотите, чтобы отображался ноль, используйте Zero PlaceHolder
источник
Попробуй это
0.ToString("#,##; #,##;0")
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings#SectionSeparator
Первый раздел применяется к положительным значениям, второй раздел применяется к отрицательным значениям, а третий раздел применяется к нулям.
источник
Используйте это так:
0
after#
обеспечит установку выходного значения на 0, если значение равно 0, иначе оно отобразит значение. Так0.0.ToString("#0.##")=0.00
и10.ToString("#.##")=10.00
источник