Я пытаюсь отформатировать содержимое текстового поля:
this.lblSearchResults1.Text =
Convert.ToDouble(lblSearchResults1.Text).ToString();
Как мне изменить это, чтобы текст включал запятую/тысячи разделителей?
то есть. 1000 вместо 1000.
Я пытаюсь отформатировать содержимое текстового поля:
this.lblSearchResults1.Text =
Convert.ToDouble(lblSearchResults1.Text).ToString();
Как мне изменить это, чтобы текст включал запятую/тысячи разделителей?
то есть. 1000 вместо 1000.
Для полного пользовательского контроля используйте ....ToString("#,##0.00")
или их варианты. .
и ,
будут заменены культуры зависимых символов. В большинстве стран Европы вы получите 1,234,56.
Еще одна полезная картинка - 0.0#
.
Чтобы использовать шаблон в зависимости от пользовательской (или выбранной) культуры, используйте числовой ("N") форматный .ToString("N")
, как в .ToString("N")
или "... {0:N}"
.
Глядя на стандартные строки числового формата:
Вы можете наиболее легко использовать "N", который будет делать правильную вещь на основе культуры пользователя, поэтому в вашем случае вы можете просто добавить "N" в качестве параметра в ToString
([double]12345.67).ToString("N")
12,345.67
Если вы более подробно рассмотрите Стандартные строки числового формата, вы можете попробовать одно из следующих:
.ToString("n", CultureInfo.GetCultureInfo("en-US"))
.ToString("n", CultureInfo.GetCultureInfo("de-DE"))
.ToString("n", CultureInfo.CurrentCulture)
Альтернативой вышеупомянутым ответам было бы использовать
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.
Самый простой способ сделать это:
Convert.ToDouble("1234567.12345").ToString("N")
Если вы хотите управлять десятичными знаками, вы можете сделать что-то вроде:
Convert.ToDouble("1234567.12345").ToString("N3")
В общем, посмотрите на перегрузки на ToString для более захватывающих возможностей.
Моя проблема, как показано ниже: я разрешаю пользователю вводить любое число, такое как 1000/100000.00/3456.8976 и т.д., тогда вывод в метке XAML будет 1000/100,000.00/3,456.8976 Следовательно, мое требование будет просто запятой тысяч. Десятичная точка будет точно следовать введенному пользователем. Заранее спасибо.