/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOperar_Click(object sender, EventArgs e) { double tmp; numero1 = new Numero(txtNumero1.Text); numero2 = new Numero(txtNumero2.Text); String operador = Calculadora.validarOperador(cmbOperacion.Text); lblResultado.Text = string.Format("{0}", Calculadora.operar(numero1, numero2, operador)); if (operador.Equals("+")) { cmbOperacion.Text = operador; } if (operador.Equals("/") && numero2.getNumero() == 0) { lblResultado.Text = "Error: división por cero."; lblResultado.BackColor = Color.DarkRed; lblResultado.ForeColor = Color.White; } else { lblResultado.BackColor = Color.Gray; lblResultado.ForeColor = Color.Black; } if (!double.TryParse(txtNumero1.Text, out tmp)) { txtNumero1.Text = "0"; } if (!double.TryParse(txtNumero2.Text, out tmp)) { txtNumero2.Text = "0"; } }
/// <summary> /// Opera matemáticamente los operandos numero1 y numero2 según el operador /// </summary> /// <param name="numero1"></param> /// <param name="numero2"></param> /// <param name="operador"></param> /// <returns>"double Devuelve el resultado de la operación."</returns> public static double operar(Numero numero1, Numero numero2, String operador) { double retorno = 0, num1, num2; num1 = numero1.getNumero(); num2 = numero2.getNumero(); switch (operador) { case "+": retorno = num1 + num2; break; case "-": retorno = num1 - num2; break; case "*": retorno = num1 * num2; break; case "/": if (num2 != 0) { retorno = num1 / num2; } break; } return(retorno); }
/* #region Deprecated por sobrecarga de operador * public static double operar(Numero numero1, Numero numero2, string operador) * { * switch (Calculadora.validarOperador(operador)) * { * case "+": * return (numero1.getNumero() + numero2.getNumero()); * case "-": * return (numero1.getNumero() - numero2.getNumero()); * case "/": * if(numero2.getNumero() != 0) * return (numero1.getNumero() / numero2.getNumero()); * return 0; * case "*": * return (numero1.getNumero() * numero2.getNumero()); * default: * return 0; * } * * } #endregion */ /// <summary> /// Realiza la operacion con los parametros y el operando pasados /// </summary> /// <param name="numero1">Primer numero a operar</param> /// <param name="numero2">Segundo numero a operar</param> /// <param name="operador">Operador(+,-,* o /)</param> /// <returns>Resultado de la operacion o 0, en caso de no poder operar</returns> public static double operar(Numero numero1, Numero numero2, string operador) { switch (Calculadora.validarOperador(operador)) { case "+": return(numero1 + numero2); case "-": return(numero1 - numero2); case "/": if (numero2.getNumero() != 0) { return(numero1 / numero2); } return(0); case "*": return(numero1 * numero2); default: return(0); } }