1 Востаннє редагувалося volkor1991 (03.05.2013 17:11:19)

Тема: Порахувати сумму

Підкажіть будь ласка, видає помилку FormatException не опрацьовано((( Дякую.

    int stepen = 2;
            Int32 otl = (Int32.Parse(textBox1.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat1 = (Math.Pow(otl, stepen) / (Int32.Parse(textBox5.Text))).ToString();
            Int32 hor = (Int32.Parse(textBox2.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat2 = (Math.Pow(hor, stepen) / (Int32.Parse(textBox5.Text))).ToString();
            Int32 troj = (Int32.Parse(textBox3.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat3 = (Math.Pow(troj, stepen) / (Int32.Parse(textBox5.Text))).ToString();
            Int32 hikvadratsum = Convert.ToInt32(hikvadrat1) + Convert.ToInt32(hikvadrat2) + Convert.ToInt32(hikvadrat3);
            textBox6.Text = hikvadratsum.ToString();

Re: Порахувати сумму

Обрамляйте будь ласка код у теги [ code ]

3 Востаннє редагувалося koala (03.05.2013 19:11:04)

Re: Порахувати сумму

Будь ласка, конкретні значення в textBox-ах, при яких це відбувається, можна навести?
Ну і написати, що це взагалі таке, теж непогано було б...

Крім того, назви textBox1...textBox6 безглузді, і взагалі поганий смак - витягати дані з форми під час обчислень.

4

Re: Порахувати сумму

volkor1991, імовірно, програма падає на Int32.Parse(). Безпечніше використати bool TryParse().

5

Re: Порахувати сумму

koala написав:

Будь ласка, конкретні значення в textBox-ах, при яких це відбувається, можна навести?
Ну і написати, що це взагалі таке, теж непогано було б...

Крім того, назви textBox1...textBox6 безглузді, і взагалі поганий смак - витягати дані з форми під час обчислень.

    int stepen = 2;
//підрахунок 1 аргументу
            Int32 otl = (Int32.Parse(textBox1.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat1 = (Math.Pow(otl, stepen) / (Int32.Parse(textBox5.Text))).ToString();
//підрахунок 2 аргументу
            Int32 hor = (Int32.Parse(textBox2.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat2 = (Math.Pow(hor, stepen) / (Int32.Parse(textBox5.Text))).ToString();
//підрахунок 3 аргументу
            Int32 troj = (Int32.Parse(textBox3.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat3 = (Math.Pow(troj, stepen) / (Int32.Parse(textBox5.Text))).ToString();
//помилка коли потрібно знайти суму 3 аргументів
            Int32 hikvadratsum = Convert.ToInt32(hikvadrat1) + Convert.ToInt32(hikvadrat2) + Convert.ToInt32(hikvadrat3);
            textBox6.Text = hikvadratsum.ToString();

6

Re: Порахувати сумму

volkor1991 написав:
koala написав:

Будь ласка, конкретні значення в textBox-ах, при яких це відбувається, можна навести?
Ну і написати, що це взагалі таке, теж непогано було б...

Крім того, назви textBox1...textBox6 безглузді, і взагалі поганий смак - витягати дані з форми під час обчислень.

    int stepen = 2;
//підрахунок 1 аргументу
            Int32 otl = (Int32.Parse(textBox1.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat1 = (Math.Pow(otl, stepen) / (Int32.Parse(textBox5.Text))).ToString();
//підрахунок 2 аргументу
            Int32 hor = (Int32.Parse(textBox2.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat2 = (Math.Pow(hor, stepen) / (Int32.Parse(textBox5.Text))).ToString();
//підрахунок 3 аргументу
            Int32 troj = (Int32.Parse(textBox3.Text) - Int32.Parse(textBox5.Text));
            string hikvadrat3 = (Math.Pow(troj, stepen) / (Int32.Parse(textBox5.Text))).ToString();
//помилка коли потрібно знайти суму 3 аргументів
            Int32 hikvadratsum = Convert.ToInt32(hikvadrat1) + Convert.ToInt32(hikvadrat2) + Convert.ToInt32(hikvadrat3);
            textBox6.Text = hikvadratsum.ToString();

Чудова відповідь. Тільки б зрозуміти, на що саме - бо ані конкретних значень, ані пояснення, що це таке ви не навели, ані сенсу в назви текстбоксів не додали.
Міг би порадити вам зробити дію 1 і потім дію 2, а якщо не допоможе - то дію 3... але не буду.

7

Re: Порахувати сумму

З вигляду формул можна зробити припущення, що hikvadrat1, hikvadrat2 та hikvadrat3  не є цілими.
Тому замініть

Int32 hikvadratsum = Convert.ToInt32(hikvadrat1) + Convert.ToInt32(hikvadrat2) + Convert.ToInt32(hikvadrat3);

на

double hikvadratsum = Convert.ToDouble(hikvadrat1) + Convert.ToDouble(hikvadrat2) + Convert.ToDouble(hikvadrat3);

А взагалі, стиль написання жахливий(( Тому й помилки.