Как форматировать двойную строку и показывать только десятичные цифры, когда это необходимо?

У меня есть код вроде:

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

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

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

Ответ 1

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

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

Он будет содержать только цифры при необходимости.

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

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

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

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

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

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

Это должно работать отлично сейчас:)

Ответ 2

это мое:

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