Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: DanielPy en 5 Mayo 2013, 17:20 pm



Título: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: DanielPy en 5 Mayo 2013, 17:20 pm
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.-

Código:
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




Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: engel lex en 5 Mayo 2013, 17:59 pm
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)?


Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: DanielPy en 5 Mayo 2013, 18:42 pm
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



Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: engel lex en 5 Mayo 2013, 19:19 pm
usando "," como separador supondré que da error, el caso debe estar en que el
Código:
Convert.ToDouble(Console.ReadLine())

no es la funcion adecuada

intenta con

Código:
decimal numeroUno =  decimal.Parse(Console.ReadLine());

y dime como te fue


Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: DanielPy 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


Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: Danyfirex en 5 Mayo 2013, 23:16 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
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 ,




Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: DanielPy en 6 Mayo 2013, 02:11 am
Hola Dani.
Si bien esa es una solución(que desconocía) me parece que el asunto es por este
lado.-

Código:
using System.Globalization;

Saludos a todos.
Daniel


Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: engel lex en 6 Mayo 2013, 02:47 am
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?


Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: DanielPy en 6 Mayo 2013, 03:36 am
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


Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: engel lex en 6 Mayo 2013, 04:15 am
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)


Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: DarK_FirefoX en 6 Mayo 2013, 15:59 pm
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


Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: DanielPy en 6 Mayo 2013, 19:44 pm
Hola a todos.-
engelx, en esa página está la solución.-

DarK_FirefoX
Citar
realmente 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í.-

Código:
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í:

Código:
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




Título: Re: No puedo mostrar los resultado correctos en mi calculadora
Publicado por: engel lex en 6 Mayo 2013, 21:20 pm
cool :P éxito con tus avances en los campos de la programación!