Hola a todos.
Debo aclarar en mi primer mensaje que tengo 61 años(me apasiona la programación) por lo tanto no tengo otra manera de aprender que con la ayuda de internet(manuales,tutoriales,videos etc.) y los foros a los que recurro en demasía ( según mi criterio) pero considero que muchas de las cosas que obtengo en las respuestas no están en los libros.-
Otra cosa para lo cual necesito mucha comprensión, me cuesta mucho hacerme entender por medio de la escritura.-
Bueno este es el caso que no puedo solucionar.-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace miswitch
{
class Program
{
static void Main(string[] args)
{
Console.Title = "Ejemplo de switch";
Console.SetCursorPosition(02,02);
Console.Write("Ingresa un número...:");
double numeroUno = Convert.ToDouble(Console.ReadLine());
Console.SetCursorPosition(02, 04);
Console.Write("Ingresa otro........:");
double numeroDos = Convert.ToDouble(Console.ReadLine());
Console.SetCursorPosition(02, 06);
Console.Write("1:Suma 2:Resta 3:Multiplica 4:Divide...:");
byte eleccion = Convert.ToByte(Console.ReadLine());
Console.SetCursorPosition(02,08);
switch (eleccion)
{
case 1:
Console.Write("Resultado...: " + (numeroUno + numeroDos));
break;
case 2:
Console.Write("Resultado...: " + (numeroUno - numeroDos));
break;
case 3:
Console.Write("Resultado...: " + (numeroUno * numeroDos));
break;
case 4:
Console.Write("Resultado...: " + (numeroUno / numeroDos));
break;
default:
Console.Write("Elección incorrecta...");
break;
}
Console.SetCursorPosition(02,11);
Console.Write("Pulse una tecla para cerrar la aplicación...");
Console.ReadKey();
}
}
}
Bueno eso es todo, espero ayuda.-
Saludo a todos.
Daniel
hola! nunca se usan foros en demasía jejeje, así se aprende, así hemos aprendidos muchos aquí...
podrías indicar que respuestas obtienes (que no concuerden)?
Hola engelx.
Si ingreso enteros todo funciona OK. el problema cuando ingreso un número con
decimales, no funciona.-
Ej: 12.5 + 4 = 129
Un gran abrazo.
Daniel
usando "," como separador supondré que da error, el caso debe estar en que el
Convert.ToDouble(Console.ReadLine())
no es la funcion adecuada
intenta con
decimal numeroUno = decimal.Parse(Console.ReadLine());
y dime como te fue
Hola a todos.
En realidad con tú línea de código me da el mismo error, pero descubrí que poniendo
coma por el punto funciona correctamente.-
12.5 x 10 incorrecto
12,5 x 10 correcto
Igual debe haber alguna manera como solucionarlo para ingresar los decimales separados con un punto, seguiremos investigando.-
Saludos.
Daniel
Cita de: DanielC# en 5 Mayo 2013, 21:15 PM
Hola a todos.
En realidad con tú línea de código me da el mismo error, pero descubrí que poniendo
coma por el punto funciona correctamente.-
12.5 x 10 incorrecto
12,5 x 10 correcto
Igual debe haber alguna manera como solucionarlo para ingresar los decimales separados con un punto, seguiremos investigando.-
Saludos.
Daniel
hola tocayo...
para eso tendrías que cambiar algo en las configuraciones de tu PC.
cito las palabras BlackZeroX
Cita de: BlackZeroX (Astaroth) en 12 Abril 2013, 04:50 AM
Debes configurar tu PC, en el panel de control en la zona de configuracion regional... checha la configuracion.
Dulces Lunas!¡.
otra alternativa seria una función para remplazar
. por
,
Hola Dani.
Si bien esa es una solución(que desconocía) me parece que el asunto es por este
lado.-
using System.Globalization;
Saludos a todos.
Daniel
me parece bien que hayas conseguido que el error era de nacionalizacion jejeje
te parece que ya tienes la solucion a este problema por completo?
Hola engelx
No para nada solucionado, si bien por lo que leí en Internet esa es la forma más correcta, pero no se implementarlo.-
Saludos.
Daniel
aqui hablan de eso, busca a ver si puedes resolver algo ;-)
http://www.daniweb.com/software-development/csharp/threads/351186/decimal-parse-and-cultureinfo-for-decimal-separator (http://www.daniweb.com/software-development/csharp/threads/351186/decimal-parse-and-cultureinfo-for-decimal-separator)
Yo también tuve ese problema una vez, la verdad lo solucioné cambiando la configuración regional, pero esto no soluciona del todo el problema, porque si lo ejecutan en otra PC. Tendras el mismo resultado incorrecto. Por otro lado me parece muy bien que consultes foros, nunca son demasiado. Y realmente es inspirador las ansias de aprender programación....Estamos aqui para ayudarte...Si tienes duda...ya sabes...
Salu2s
Hola a todos.-
engelx, en esa página está la solución.-
DarK_FirefoX
Citarrealmente es inspirador las ansias de aprender programación....Estamos aqui para ayudarte...Si tienes duda...ya sabes...
Si encontrara el emoticon que llora(de emoción) lo pondría aquí.-
using System;
using System.Collections.Generic;
using System.Globalization;
public class MyClass
{
public static void Main()
{
string a = "12.34";
decimal b = Convert.ToDecimal(a, System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine("El número es...:" + b);
Console.Write("Apriete una tecla para cerrar la aplicación.");
Console.ReadKey();
}
}
Siempre que en (Windows XP) Inicio>Panel de control>Configuración regional y de idioma>Personalizar Símbolo decimal contenga una "coma" si le ponemos un "punto" funciona de todas formas.-
El programa quedaria así:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
namespace miswitch
{
class Program
{
static void Main(string[] args)
{
Console.Title = "Ejemplo de switch";
Console.SetCursorPosition(02,02);
Console.Write("Ingresa un número...:");
decimal numeroUno = Convert.ToDecimal(Console.ReadLine(), System.Globalization.CultureInfo.InvariantCulture);
Console.SetCursorPosition(02, 04);
Console.Write("Ingresa otro........:");
decimal numeroDos = Convert.ToDecimal(Console.ReadLine(), System.Globalization.CultureInfo.InvariantCulture);
Console.SetCursorPosition(02, 06);
Console.Write("1:Suma 2:Resta 3:Multiplica 4:Divide...:");
byte eleccion = Convert.ToByte(Console.ReadLine());
Console.SetCursorPosition(02,08);
switch (eleccion)
{
case 1:
Console.Write("Resultado...: " + (numeroUno + numeroDos));
break;
case 2:
Console.Write("Resultado...: " + (numeroUno - numeroDos));
break;
case 3:
Console.Write("Resultado...: " + (numeroUno * numeroDos));
break;
case 4:
Console.Write("Resultado...: " + (numeroUno / numeroDos));
break;
default:
Console.Write("Elección incorrecta...");
break;
}
Console.SetCursorPosition(02,11);
Console.Write("Pulse una tecla para cerrar la aplicación...");
Console.ReadKey();
}
}
}
Gracias a todos.
Saludos
Daniel
cool :P éxito con tus avances en los campos de la programación!