Я пытаюсь преобразовать числа в виде 123456 в 123 456, что довольно легко найти с помощью метода .NET ToString () с пользовательским форматом N0.
Однако в одном случае данных я получаю странные форматы при использовании этого метода.
В этом случае я динамически генерирую DataTable для моей входной таблицы для проверки кода.
DataTable dt = new DataTable();
dt.Columns.Add("Cases", typeof(Int32));
Например, мои данные выглядят так до применения форматирования.
--------------------------------------------
| Cases | 2495 | 3937 | 3207 | 4173 | 4265 |
--------------------------------------------
Мне бы хотелось, чтобы это выглядело так.
-------------------------------------------------
| Cases | 2,495 | 3,937 | 3,207 | 4,173 | 4,265 |
-------------------------------------------------
Я пытаюсь отформатировать его, используя такой код.
output.Rows[r][c] = Convert.ToInt32(input.Rows[c - 1][r + 1]).ToString("N0");
(Примечание. Причина странного форматирования заключается в том, что я беру DataTable и переносим его в другой DataTable.)
Используя приведенное выше форматирование, я теперь получаю следующие данные.
--------------------------------------------------------------------------
| Cases | 01/02/0495 | 01/03/0937 | 01/03/0207 | 01/04/0173 | 01/04/0265 |
--------------------------------------------------------------------------
Затем я попытался сделать это с одним десятичным знаком, используя:
output.Rows[r][c] = Convert.ToInt32(input.Rows[c - 1][r + 1]).ToString("N01");
Что дало мне следующий результат.
------------------------------------------------------
| Cases | 2495.0 | 3937.0 | 3207.0 | 4173.0 | 4265.0 |
------------------------------------------------------
Это меня смутило, потому что я принимаю тот факт, что число может быть отформатировано таким образом.
Следующим, что я попробовал, были разные способы форматирования строк, например.
output.Rows[r][c] = string.Format("{0:N0}", input.Rows[c - 1][r + 1]);
output.Rows[r][c] = Convert.ToInt32(input.Rows[c - 1][r + 1]).ToString("#,##0");
Ни один из них не дает числовой формат, как мне бы хотелось. Кто-нибудь может посоветовать, где я иду не так? Это так просто, что я упустил суть?