Я пытаюсь отформатировать содержимое текстового поля:
this.lblSearchResults1.Text =
Convert.ToDouble(lblSearchResults1.Text).ToString();
Как я могу изменить это, чтобы в тексте содержались разделители запятая / тысяча?
т.е. 1000 вместо 1000.
Для полного пользовательского контроля используйте ... .ToString("#,##0.00")
или их вариации. Варианты .
и ,
будут заменены символами, зависящими от культуры. В большинстве стран Европы вы получите 1.234,56.
Еще один полезный рисунок - 0.0#
.
Чтобы использовать шаблон, зависящий от культуры пользователя (или выбранной культуры), используйте Спецификатор числового формата ("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)
Самый простой способ сделать это будет примерно так:
Convert.ToDouble("1234567.12345").ToString("N")
Если вы хотите контролировать десятичные разряды, вы можете что-то сделать например:
Convert.ToDouble("1234567.12345").ToString("N3")
В общем, посмотрите на перегрузки ToString, чтобы увидеть более интересные возможности.