2014-12-21 4 views
-2

У меня есть строка, которая содержит число, и я хочу, чтобы показать эту строку в этом числовом формате: #,##0 Так я стараюсь добавить в эту строку .ToString("#,##0") но компилятор говорит, чтоСтрока формата строка

В наилучшее перегруженное соответствие метода для 'string.ToString (System.IFormatProvider)' имеет некоторые недопустимые аргументы.

Любая идея, как это сделать, без преобразования этой строки сначала в int?

+0

В чем проблема конвертации в int? – mybirthname

+0

Причина, по которой я хочу знать, возможно ли это сделать, не преобразовывая сначала в int –

+1

Единственный способ сделать это, путем подстановки ввода и ввода запятой. –

ответ

0

Я не думаю, что это возможно, если вы не хотите обрабатывать строку вручную. Если вы попробуете String.Format("{0:#,##0}", "1000000"), выход будет 1000000. И для меня это имеет смысл. Хотя вы можете сказать, что «эта строка содержит числа все время», это не безопасное предположение, что язык должен работать нормально.

Лучше всего, чтобы сделать что-то вроде:

String.Format("{0:#,##0}", int.Parse(input)); 

, если вы уверены, что он будет всегда будет колдовать целое.

0

сначала конвертируйте ввод строки в целое число, а затем попробуйте форматировать строку. См. Пример ниже:

string test = "12345"; 
Console.WriteLine("{0}", int.Parse(test).ToString("#,##0")); 
1

Когда вам просто нужно отформатировать одно число, например целое или длинное. В этом случае вам не нужно использовать string.Format. Вы можете просто использовать виртуальный метод ToString. Это уменьшает некоторые накладные расходы. Но вы не можете форматировать строку напрямую с помощью ToString.

Смежные вопросы