Номер в турецком текстовом приложении - PullRequest
0 голосов
/ 17 ноября 2010

Я пытаюсь преобразовать число, введенное в текстовое поле сообщения. Но я не могу найти правильные причины, не работает. Вы также, пожалуйста, посмотрите.

Ответы [ 2 ]

1 голос
/ 17 ноября 2010
for (int j = 0; j < txtNumber.Text.Length; )  
{
    array[j] = (number / (10 ^ (txtNumber.Text.Length - (txtNumber.Text.Length - j)))) % 10;
    j += 1;
}

(txtNumber.Text.Length - (txtNumber.Text.Length - j)) равно j, поэтому:

for (int j = 0; j < txtNumber.Text.Length; j += 1)  
{
    array[j] = (number / (10 ^ j)) % 10;
}

Ты XOR 10 с J?

Кроме того, «Секизмилён» - это не слово. Вам нужно поставить пробел между ними.

0 голосов
/ 17 ноября 2010

Похоже, вы пытаетесь вычислить степень 10 с помощью ^, когда вы, вероятно, имеете в виду Math.Pow.Используя предложенное сокращение aib , ваша строка:

array[j] = (number / (10 ^ (txtNumber.Text.Length - (txtNumber.Text.Length - j)))) % 10;

становится:

array[j] = (number / (int)Math.Pow(10, j)) % 10;

Пара других предложений:

  1. Измените NumberControl, чтобы вернуть логическое значение, чтобы вы могли пропустить вызов до ReadNumber, если введенный номер слишком велик.В настоящее время он входит в ReadNumber, даже если число превышает 7 цифр, что приводит к ошибке массива вне границ

  2. Блок кода, начинающийся с if (txtSayi.Text.Length != 7), кажется избыточным.

...