nikhil2015 Ответов: 5

Как перевернуть число, заканчивающееся нулем с#


Привет,

у меня есть ниже код

fiveDigNo=17660;

while (fiveDigNo!= 0)
{
   reverse = reverse * 10;
   reverse = reverse + fiveDigNo% 10;
   fiveDigNo= fiveDigNo/ 10;
}


Я хочу получить обратный ход, как 06671. Но я получаю 6671.

Что я уже пробовал:

Обратная Функция .

5 Ответов

Рейтинг:
43

Sergey Alexandrovich Kryukov

Это то же самое. 06671 = 6671. Разве это не очевидно?

Если вы хотите получить "06671", то речь идет не о вашем номере, а о том, как вы представляете номер в виде строки:
Типа int32.Метод ToString (Система)[^],
Типа int32.Метод ToString (String) (System)[^],
Строки Стандартных Числовых Форматов [^],
Строки Пользовательского Числового Формата[^].

Строго говоря, задача "перевернуть число" не была правильно определена. Например, вы получите другой результат, если "перевернете" восьмеричные, шестнадцатеричные цифры числа и т. д. Таким образом, вы могли бы, в качестве альтернативы, просто получить строку сначала, через ToString или каким-то другим способом, а затем перевернуть эту строку.

—СА


CPallini

5.

Sergey Alexandrovich Kryukov

Спасибо, Карло.
—СА

George Jonsson

Определенно 5.
Не знаю, сколько "проблем с форматированием" для чисел или дат я видел в последнее время, потому что люди думают, что данные хранятся в памяти так же, как они отображаются на экране.

Sergey Alexandrovich Kryukov

- Спасибо, Джордж. Хуже того, многие ведут себя так, как будто единственным видом данных являются строки... Потраченный впустую...
—СА

George Jonsson

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

ridoy

точно, 5.

Sergey Alexandrovich Kryukov

Спасибо.
—СА

Рейтинг:
31

CPallini

'06671' и '6671' это две разные вещи строковое представление из одно и то же целое число То есть, если вам действительно нужен ведущий 0 в результате вам рано или поздно придется изменить свою целочисленную переменную на строковую.


Sergey Alexandrovich Kryukov

Я думаю, мы ответили одновременно... 5ed.
—СА

CPallini

Вы знаете, великие умы... :-)

Sergey Alexandrovich Kryukov

В нашей культуре пословица другая, это что-то вроде
- Мысли дураков совпадают..."
—СА

CPallini

Я думаю, что ваша культура права.

Sergey Alexandrovich Kryukov

:-)

ridoy

а 5 тоже, :)

CPallini

Спасибо.

Рейтинг:
28

Jochen Arndt

Числа 06671 и 6671 численно идентичны. Если вы хотите получить результат типа "06671" (строковое представление), вы должны использовать строку и обратить ее вспять:

string numString = fiveDigNo.ToString();
char[] charArray = numString.ToCharArray();
Array.Reverse(charArray);
string revString = new string(charArray);
// If you need the numeric value too:
int revNumber = Convert.ToInt32(revString);


nikhil2015

string revString = new string(Array); отображение ошибки как "Array - это тип,который недопустим в данном контексте"

int revNumber = revString.ToInt32(); поскольку "string не содержит определения для ToInt32" и не может быть найден метод расширения "ToInt32", принимающий первый аргумент типа string

Jochen Arndt

Я только что напечатал ответ и сделал две ошибки:
Массив должен быть charArray
и он должен быть обращен.ToInt32(revString)
Я обновлю свой ответ.

nikhil2015

строка myString = fiveAddNumber.Метод toString();
char[] arrayR = myString.ToCharArray();
Массив.Реверс(arrayR);

revString = новая строка(arrayR);

Я получил решение из вышеприведенного кода

Спасибо Йохен Арндт

Рейтинг:
1

Patrice T

Цитата:
Я хочу получить обратный ход, как 06671. Но я получаю 6671.
Результат совершенно нормальный. Потому что 06671 и 6671-это одно и то же значение.
Чтобы обработать начальный ноль, единственный способ-использовать строку вместо числового значения. перевернув строку "17660", вы получите "06671".

В противном случае вам необходимо предоставить нам дополнительную информацию об использовании этого реверса.


Рейтинг:
1

Abhinav S

"I want to get reverse like 06671. But i am getting 6671."


Это ведь одно и то же, верно?

С помощью обратной функции вы могли бы получить строку. Преобразуйте 06671 в числовое значение, и вы получите результаты.