@Ryuk124

Как складывать несколько чисел для калькулятора?

Пишу калькулятор на C# (UWP), не могу понять, каким образом можно складывать/вычитать/делить/etc несколько чисел, а не 2. Сейчас есть такой код (может считать только 2 числа, если ввести, например, 3+3+3, то выдаст "System.FormatException: "Input string was not in a correct format."):
private void Result(object sender, RoutedEventArgs e)
        {
            if (Score.Text != "")
            {
                double result = 0;
                char[] textBoxCharred = (Score.Text.ToString()).ToCharArray();

                foreach(char i in textBoxCharred)
                {
                    switch (i)
                    {
                        case '+':
                            int a = Score.Text.IndexOf('+');
                            string l = "";
                            string c = "";
                            for (int b = 0; b < a; b++) {
                                l += textBoxCharred[b];
                            }
                            double nextTerm = Score.Text.Length;

                            for (int b = a + 1; b < nextTerm; b++)
                            {
                                c += textBoxCharred[b];
                            }

                            double term1 = Convert.ToDouble(l);
                            double term2 = Convert.ToDouble(c);

                            result = term1 + term2;
                            continue; 
                    }
                }


                Score.Text = result.ToString();
            }

Вообще никаких идей нет, подскажите что-нибудь
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vabka
Fullstack dev
1. Отвяжитесь от WPF и научитесь вычислять строки, тк ваша задача к WPF никак не привязана
2. Машина делает то, что ей сказали, а не то, что хочет человек - в данном случае "найди индекс знака '+' в строке, разбей строку на две части его индексу, спарси числа из этих строк, сложи их"
3. гуглите AST и обратную польскую запись
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы