Вы можете просто сделать:
string.Format("{0}", yourDouble);
Это будет включать только цифры при необходимости.
Если вы хотите, чтобы другие примеры форматирования удваивались в строку, посмотрите эту ссылку .
РЕДАКТИРОВАТЬ: На основе вашего комментария вы хотите разделитель ,
, чтобы вы могли сделать:
string.Format("{0:0,0.########}", yourDouble);
Просто укажите как можно больше #
для максимального количества десятичных разрядов, которые вы хотите показать. Цифры будут отображаться только при необходимости, но не более максимальных цифр в зависимости от того, сколько #
вы включите в формат. #
означает, что в случае необходимости отображается только цифра, поэтому, если вы дадите число, подобное 123
без десятичной дроби, оно будет отображаться как 1,234
, но если вы зададите его 1234.456
, оно будет отображаться как 1,234.456
. Если вы превысите заданные вами максимальные цифры, они будут округлены.
РЕДАКТИРОВАТЬ: Чтобы исправить сценарий двойного нуля, просто измените его на:
string.Format("{0:#,0.########}", yourDouble);
Теперь это должно прекрасно работать:)