У меня есть код как:
lblFranshizShowInvwNoskhehEdit.Text = string.Format("{0:n}",
(double)(int.Parse(drDarman["FranshizDarsad"].ToString()) *
Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text)) / 100);
Но {0:n0}
формат строки вынуждает текст маркировки не иметь десятичные цифры и {0:n}
формат строки вынуждает текст маркировки иметь 2 десятичных цифры (значение по умолчанию).
В моем сценарии я просто хочу десятичные цифры, когда необходимый / не округляя их / как я могу сделать это?
Вы можете просто сделать:
string.Format("{0}", yourDouble);
Он будет включать только цифры, когда это необходимо.
Если вы хотите, чтобы другие примеры форматирования удваивались в строку, просмотрите эту ссылку .
РЕДАКТИРОВАТЬ: На основании вашего комментария вам нужен разделитель ,
, чтобы вы могли:
string.Format("{0:0,0.########}", yourDouble);
Просто введите столько #
для максимального количества десятичных знаков, которое вы хочу показать. Цифры будут отображаться только при необходимости, но до максимального количества цифр в зависимости от того, сколько #
вы включили в формат. #
означает показывать цифру только в случае необходимости, поэтому, если вы укажете такое число, как 123
без десятичной дроби, оно будет отображаться как 1,234
, но если вы укажете его 1234,456
, он будет отображаться как 1,234,456
. Если вы превысите указанное вами максимальное количество цифр, они будут округлены.
РЕДАКТИРОВАТЬ: Чтобы исправить ваш сценарий двойного нуля, просто измените его на:
string.Format("{0:#,0.########}", yourDouble);
Теперь это должно работать отлично :)