[ Foro de C# ]
Hola a todos, soy nuevo en el foro y este es mi problema:
Como puedo desarrollar una pequeña aplicación en consola en la cual esta me pida insertar solo 1 carácter con el teclado y detectar si es un valor numérico o un carácter sin valor numérico, y si es un valor numérico convertirlo a Tipo Single para que sea usado mas tarde.
El valor numérico a convertir también tiene que ser decimal.
Muchas gracias y un saludo. espero pronto su respuesta.
La forma más segura de leer datos en guardándolos con un string, de modo que no falle si el usuario introduce más de una letra. Después, tomas la primera letra con [0] y miras si está en el rango de las cifras numéricas:
string texto = Console.ReadLine();
bool esNumero = false;
float dato = 0;
if ((texto.Length > 0) && (texto[0] >= '0') && (texto[0] <= '9'))
esNumero = true;
if (esNumero)
dato = Convert.ToSingle(texto);
Gracias por la respuesta, ya lo implementé en mi sumadora de números.
Este es el código que me pasaste pero mejorado.
string texto = Console.ReadLine();
bool condicion = false;
float suma = 0;
if ((texto.Length > 0) && (texto[0] >= '0') && (texto[0] <= '9'))
condicion = true;
if (condicion)
{
suma = Convert.ToSingle(texto);
Console.WriteLine("Es numero");
Console.ReadLine();
}
else
{
Console.WriteLine("Es texto");
Console.ReadLine();
}
Que sepas que si llegas a ser alumno mío y haces que una condición se llame "condicion" en vez de algo más autoexplicativo, como por ejemplo "esNumerico", tendrías 37 millones de puntos menos en este ejercicio (poco más o menos)... ;-D
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)