Как вставить тысячу разделителей (запятая) с преобразованием в double

Я пытаюсь отформатировать содержимое текстового поля:

this.lblSearchResults1.Text =
    Convert.ToDouble(lblSearchResults1.Text).ToString(); 

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

то есть. 1000 вместо 1000.

Ответ 1

Для полного пользовательского контроля используйте ....ToString("#,##0.00") или их варианты. . и , будут заменены культуры зависимых символов. В большинстве стран Европы вы получите 1,234,56.
Еще одна полезная картинка - 0.0#.

Чтобы использовать шаблон в зависимости от пользовательской (или выбранной) культуры, используйте числовой ("N") форматный .ToString("N"), как в .ToString("N") или "... {0:N}".

Ответ 2

Глядя на стандартные строки числового формата:

Вы можете наиболее легко использовать "N", который будет делать правильную вещь на основе культуры пользователя, поэтому в вашем случае вы можете просто добавить "N" в качестве параметра в ToString

([double]12345.67).ToString("N")

12,345.67

Ответ 3

Если вы более подробно рассмотрите Стандартные строки числового формата, вы можете попробовать одно из следующих:

.ToString("n", CultureInfo.GetCultureInfo("en-US"))
.ToString("n", CultureInfo.GetCultureInfo("de-DE"))
.ToString("n", CultureInfo.CurrentCulture)

Ответ 4

Альтернативой вышеупомянутым ответам было бы использовать

this.lblSearchResults1.Text = String.Format("{0:N}", Convert.ToDouble(lblSearchResults1.Text))

Если вы хотите десятичные места, просто введите количество десятичных знаков, которое вы хотите иметь после N. Следующий пример вернет значение с двумя десятичными знаками.

this.lblSearchResults1.Text = String.Format("{0:N2}", Convert.ToDouble(lblSearchResults1.Text))

Подробнее см. http://msdn.microsoft.com/en-us/library/system.string.format.aspx.

Ответ 5

Самый простой способ сделать это:

Convert.ToDouble("1234567.12345").ToString("N")

Если вы хотите управлять десятичными знаками, вы можете сделать что-то вроде:

Convert.ToDouble("1234567.12345").ToString("N3")

В общем, посмотрите на перегрузки на ToString для более захватывающих возможностей.

Ответ 6

Моя проблема, как показано ниже: я разрешаю пользователю вводить любое число, такое как 1000/100000.00/3456.8976 и т.д., тогда вывод в метке XAML будет 1000/100,000.00/3,456.8976 Следовательно, мое требование будет просто запятой тысяч. Десятичная точка будет точно следовать введенному пользователем. Заранее спасибо.