2014-01-28 5 views
-1

У меня есть строка (string value="01"), когда я преобразовываю эту строку в int (int tempValue= int.Parse(value)). Тогда я получаю результат = 1. Я хочу, чтобы это значение было таким же, как строковое значение, которое ведет к нулю.Преобразование строки с ведущим нулем в целое число

Ответ: -

int length = 3; 
int number = 20; 
string asString = number.ToString("D" + length); //"020" 
+0

Почему вы так хотите? – Satpal

+4

Номера представлены так, как они. string является подходящим типом данных, если вы хотите префикс его 0. – shahkalpesh

+0

Значение ** numeric **, подобное 'int', не имеет и не показывает ведущих нулей. '1' численно идентичен' 01' –

ответ

2

Там нет такой вещи, как целое с ведущим нулем. A 1 - всего лишь 1. Вы говорите о представлении значения здесь.

Так что, если вы хотите, чтобы представлять целое значение 1 с ведущим нулем, просто отформатировать его соответствующим образом при помощи String.Format:

String.Format("{0:00}", 1) 

В ответ на ваш комментарий:

Если вы не» t хотите использовать определенный формат (например, 00), но, скорее, всегда добавляйте 0, независимо от того, сколько цифр вы можете просто добавить 0 к строке, например String.Format("0{0}", 1) или "0" + 1.


В ответ на ваш второй комментарий:

Так в основном вы хотите, чтобы результат иметь столько цифр, как вход (который представляет собой число в виде строки с любым числом ведущих нулей)? Затем вы должны использовать PadLeft.

string input = "001"; 
string output = (int.Parse(input) + 1).ToString().PadLeft(input.Length, '0'); 

output теперь "002".

+0

Я не уверен, что строка имеет только формат {0:00}. Это может быть {0: 000}, {0: 0000} –

+0

Если вы не хотите использовать определенный формат (например, '00'), а скорее * всегда * добавляете' 0', независимо от того, сколько цифр, вы может просто добавить '0' к строке, например' String.Format («0 {0}», 1) 'или' "0" + 1' – sloth

+0

, пожалуйста, смотрите ниже пример в соответствии с вашим ответом: - 'string value = "001"; string tempvalue = String.Format ("0 {0}", (int.Parse (value) + 1)); 'в этом случае я получаю '02', но я хочу получить '002'. –

1

Вы не можете сделать это. As, An int представляет математическое целое число.

6

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

int tempValue = 1; 
    String back = tempValue.ToString("00"); 
1

Ведущее нули целого числа не имеют никакого отношения. 01 - это то же самое, что и 1.

Если вы хотите, чтобы показать ведущий нуль, когда форматирования целого числа в виде строки, использовать что-то подобное:

myInteger.ToString("00"); 
0

Вы можете только использовать строку типа данные для обработки этого сценария.Для начальных/конечных нулей мы имеем string.PadLeft и string.PadRight доступных функций.

0
int length = 3; 
int number = 20; 
string asString = number.ToString("D" + length); //"020" 
+0

Это тот же код вашего вопроса. Как это может быть решением? –

+0

см. Здесь он не может иметь зависимости, вы можете использовать его в любом формате строки, когда вы не знаете о формате строки –

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