Operacion introducida por el usuario devuelve error Input string was not in a correct format
Publicado por Isaak (5 intervenciones) el 04/05/2019 20:55:22
Hola a todos, os dejo aqui un pequeño codigo a ver si alguien me puede decir donde falla.
La cuestion es que al introducir los caracteres numericos funciona a la perfeccion pero cuando le trato de meter el operador(o cualquier otro caracter que no sea un digito), el programa crashea.
He llegado a la conclusion de que el programa trata de convertir a int o double el caracter, pero no se exactamente por que pasa o que linea del codigo es la que crea el conflicto, asi que si alguien me echa una mano le estaria muy agradecido.
Gracias de antemano y saludos :)
La cuestion es que al introducir los caracteres numericos funciona a la perfeccion pero cuando le trato de meter el operador(o cualquier otro caracter que no sea un digito), el programa crashea.
He llegado a la conclusion de que el programa trata de convertir a int o double el caracter, pero no se exactamente por que pasa o que linea del codigo es la que crea el conflicto, asi que si alguien me echa una mano le estaria muy agradecido.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
string operacion;
int longitud;
string primerNumSTR;
double primerNum;
string segundoNumSTR;
double segundoNum;
string operador;
Console.WriteLine("Introduce una operacion.");
operacion = Console.ReadLine().ToLower();
longitud = operacion.Length;
//operacion.Substring(0, longitud);
for (int i = 0; i < longitud; i++)
{
string digito = operacion.Substring(i, 1);
if (Char.IsDigit(Convert.ToChar(digito)))
{
}
else
{
operador = digito;
primerNumSTR = (operacion.Substring(0, Convert.ToInt32(operador)));
primerNum = Convert.ToDouble(primerNumSTR);
segundoNumSTR = (operacion.Substring(Convert.ToInt32(operador), operacion.Length));
segundoNum = Convert.ToDouble(segundoNumSTR);
if (operador == "x")
{
double multi = primerNum * segundoNum;
}
else if (operador == "-")
{
}
else if (operador == "+")
{
Console.WriteLine("Tu operacion es una suma");
}
else if (operador == "/")
{
Console.WriteLine("Tu operacion es una division");
}
}
}
Gracias de antemano y saludos :)
Valora esta pregunta


0