проблема с Double.Метод toString

#c# #tostring

#c# #tostring

Вопрос:

Я использую это:

 dSize.ToString("#.#", System.Globalization.CultureInfo.CurrentCulture); 
  

Где dSize это double . он отлично работает, когда dSize имеет что-то вроде 2.5 , НО если dSize имеет что-то вроде 3 — то есть у него нет десятичной части — он возвращает, "3" что неверно. Я хочу, чтобы он возвращал "3.0" so по-прежнему с одной десятичной точкой.

Есть мысли?

Ответ №1:

Используйте 0 , чтобы указать, что цифра должна быть напечатана, даже если она равна нулю:

 dSize.ToString("#.0", System.Globalization.CultureInfo.CurrentCulture)
  

Это выведет .3 вместо 0.3 ; если вы хотите, чтобы цифра перед десятичной точкой тоже была напечатана, используйте 0 там также:

 dSize.ToString("0.0", System.Globalization.CultureInfo.CurrentCulture)
  

Ответ №2:

Использовать

 dSize.ToString("#.0", CultureInfo.CurrentCulture);
  

# является заполнителем цифр и будет напечатан, если в числе в этой позиции есть цифра.

0 это заполнитель цифр, который выведет цифру, если есть единица, или ноль, если в этой позиции нет числа.

Ссылка: Строки пользовательского числового формата

Ответ №3:

Взгляните на строки пользовательского числового формата, а также на примеры вывода строк пользовательского числового формата в MSDN.

Они должны оказаться полезными в сочетании с ответом, предоставленным @ Timwi.