Как мне отформатировать двойные строки и показывать только десятичные цифры при необходимости? - PullRequest
10 голосов
/ 14 июля 2010

У меня есть такой код:

lblFranshizShowInvwNoskhehEdit.Text = string.Format("{0:n}",
    (double)(int.Parse(drDarman["FranshizDarsad"].ToString()) * 
        Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text)) / 100);

Но {0:n0} формат строки заставляет текст метки не иметь десятичных цифр, а {0:n} формат строки заставляет текст метки иметь 2 десятичных знака (по умолчанию).

В моем сценарии я просто хочу десятичные цифры при необходимости / без их округления / как я могу это сделать?

Ответы [ 2 ]

23 голосов
/ 14 июля 2010

Вы можете просто сделать:

string.Format("{0}", yourDouble);

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

Если вы хотите, чтобы другие примеры форматирования удваивались в строку, посмотрите эту ссылку .

РЕДАКТИРОВАТЬ: На основе вашего комментария вы хотите разделитель ,, чтобы вы могли сделать:

string.Format("{0:0,0.########}", yourDouble);

Просто укажите как можно больше # для максимального количества десятичных разрядов, которые вы хотите показать. Цифры будут отображаться только при необходимости, но не более максимальных цифр в зависимости от того, сколько # вы включите в формат. # означает, что в случае необходимости отображается только цифра, поэтому, если вы дадите число, подобное 123 без десятичной дроби, оно будет отображаться как 1,234, но если вы зададите его 1234.456, оно будет отображаться как 1,234.456. Если вы превысите заданные вами максимальные цифры, они будут округлены.

РЕДАКТИРОВАТЬ: Чтобы исправить сценарий двойного нуля, просто измените его на:

string.Format("{0:#,0.########}", yourDouble);

Теперь это должно прекрасно работать:)

0 голосов
/ 24 ноября 2014

это мое:

string.Format("{0:n2}", double);
...