Member 12688495 Ответов: 2

Моя проблема заключается в том, что когда я запускаю этот код SHOW ERROR (его программа калькулятора)


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication35
{
    public partial class Form1 : Form                  
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "0")
            {
                textBox1.Clear();
            }

            Button button = (Button)sender;
            textBox1.Text = textBox1.Text + button.Text;
        }

        private void button16_Click(object sender, EventArgs e)
        {
            Button button = (Button)sender;

            textBox1.Text = textBox1.Text + button.Text;
         
           string result;
           string st;      
            st = button.Text;

           double num1 = Double.Parse(textBox1.Text);// here show the  error how to slove this 

           textBox1.Text = String.Empty;
           double num2 = Double.Parse(textBox1.Text);
            switch (st)
            { 
                case "+": 
                  result = (num1+num2).ToString(); 
                 textBox1.Text = Convert.ToString(result);
                  break; 
 
              case "-":
                  result = (num1 - num2).ToString(); 
                 textBox1.Text = Convert.ToString(result);                     
                 break; 
 
               case "*":
                 result = (num1 * num2).ToString(); 
                 textBox1.Text = Convert.ToString(result);                  
                    break; 
 
                case "/" : 
                    if (num2 != 0) 
                    {
                        result = (num1 / num2).ToString(); 
                        textBox1.Text = Convert.ToString(result);
                    } 
                    else 
                    { 
                        MessageBox.Show("Can't divide by zero"); 
                    } 
                    break; 
            }             
        } 
        }
    }


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

когда вы вводите номер и нажимаете кнопку Добавить, он показывает сообщение об ошибке .

пожалуйста, решите эту проблему .......

ZurdoDev

Хотите поделиться с нами сообщением об ошибке?

cvogt61457

Просто предположение...
Вы получите ошибку синтаксического анализа, если текстовые поля пусты. В обоих случаях для добавления должно быть числовое значение.
Попробуйте ввести "0" в обоих случаях, чтобы увидеть, если вы все еще получаете ошибку.
Для реального решения вам нужно будет проверить, что оба текстовых поля имеют значения, и вывести сообщение об ошибке, если нет.

& lt;edit>Вы ставите кнопку.Текст в текстовое поле 1.
почему?
Текстовые поля должны содержать только цифры в двойном формате.

[no name]

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

Philippe Mori

Вы не говорите нам, какую ошибку вы получаете (для какого ввода). Таким образом, нам предоставляется недостаточно информации, чтобы помочь вам.

2 Ответов

Рейтинг:
0

cigwork

Как отметил cvogt61457 a {type}.Метод Parse выдаст исключение, если строка не является допустимым представлением целевого типа. Где {type} обычно является целочисленным, двойным, булевым. Используемый тип}.Вместо этого используйте методы TryParse ().

double num1 = 0.0;
if (Double.TryParse(textBox1.Text, out num1)) {
  // Do stuff with num1
}
else {
  // Tell user he or she is a clot.
}


Рейтинг:
0

Patrice T

Я не понимаю, почему вы обращаетесь result нанизывать

textBox1.Text = Convert.ToString(result);

с result это уже строка
result = (num1+num2).ToString();