проблема с методом Double.ToString - PullRequest
0 голосов
/ 05 мая 2011

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

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

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

Есть мысли?

Ответы [ 3 ]

3 голосов
/ 05 мая 2011

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

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

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

dSize.ToString("0.0", System.Globalization.CultureInfo.CurrentCulture)
2 голосов
/ 05 мая 2011

Использование

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

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

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

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

1 голос
/ 05 мая 2011

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

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

...