Título: c# Ayuda codigo posible error FLOAT Publicado por: metalost en 1 Julio 2016, 22:17 pm Buenas estoy empezando a aprender c# estaba con un projecto en el visual estudio de "Console aplication"
Código
Necesito ayuda, el programa no me lee el 1.20 cuando lo ejecuto, si en vez de 1.20 y 1.30 colocara valores enteros como 1 y 2 entonces el programa si funciona pero, es como si no me leyera los numeros decimales, me podrian ayudar? gracias Título: Re: c# Ayuda codigo posible error FLOAT Publicado por: Eleкtro en 1 Julio 2016, 23:13 pm Hola.
Antes de nada: 1. Utiliza la etiqueta GeShi para formatear el código. Esto es un foro de programación. 2. Lee las normas del foro de programación. 3. Las preguntas de C# van en el subforo de .NET. En el idioma Español, se utiliza una coma "," como separador de deciales, no un punto. Esto es importante mencionarlo por que los algoritmos de parsing de formatos de .NET Framework usan las reglas del idioma/cultura actual de la aplicación, y en una aplicación .NET el idioma o cultura por defecto es la misma que la que tenga tu sistema (donde desarrolles la app), es decir, será el idioma Español (es-ES) Entonces, este bloque de órdenes jamás podrá funcionar como esperas, por que tú estás utilizando el separador de decimales que corresponde al idioma Inglés de EEUU (en-US): Código
Así que cuando parseas un número como 1.25, ese número se convierte en un entero, osea que el valor que se le asignará a la variable "longitud" será 125,0. La solución es simple: utiliza la coma para separar decimales como todo el mundo, o bien cambia la cultura de la aplicación a Inglés. Puedes cambiar la cultura en las propiedades de tu proyecto, o bien en tiempo de ejecución: Código
O también puedes utilizar el overload de la función float.Parse() que toma un parámetro que derive de la interfáz IFormatProvider, el cual sirve para especificar con que formato queremos que se parsee el string: Código
Saludos. Título: Re: c# Ayuda codigo posible error FLOAT Publicado por: metalost en 1 Julio 2016, 23:23 pm Muchas gracias no sabia, gracias por la ayuda
Estoy intentando las soluciones que dejaste efectivamente tenia bien escrito el 1.20 en el código pero a la hora de ejecutarlo tenia que colocar 1,20 como todos lo hacen, muchas gracias por la ayuda :D :D :D |