Foros del Web » Programación para mayores de 30 ;) » .NET »

Duda sobre el For... (C#)

Estas en el tema de Duda sobre el For... (C#) en el foro de .NET en Foros del Web. Saludos cordiales. Al ingresar un número, si el usuario escribe 80, aparecerán los números del 0 hasta el 80. (Bueno en la pantalla se verá ...
  #1 (permalink)  
Antiguo 04/08/2014, 12:04
 
Fecha de Ingreso: junio-2014
Mensajes: 6
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Duda sobre el For... (C#)

Saludos cordiales.

Al ingresar un número, si el usuario escribe 80, aparecerán los números del 0 hasta el 80. (Bueno en la pantalla se verá del 50,2 al 80,0)
Pero al ingresar el 20, aparecerá pantalla ( 0,0 hasta el 19,9). Mi pregunta es: ¿Por qué no aparece hasta el 20,0? Supongo que no se podría considerar un error... Estoy tratando de comprender el funcionamiento del for.
Lo mismo sucede al ingresar 30 (0,0 hasta 29,9) debería mostrar hasta el 30,0.
Si ingreso 100, aparecen los números del 70,5 hasta el 100,0 (Busco que aparezcan los números del 0 hasta 100,0
¿Alguna solución al respecto?



Código:
using System;

namespace fornumerosdecimalesparte2
{
    class Program
    {
        static void Main()
        {
            double nt;
            double p;

            Console.Write("Ingrese un numero: ");
            nt = Convert.ToDouble(
                Console.ReadLine());
            while (nt <= 0)
            {
                Console.Write("Ingrese un número mayor que cero: ");
                nt = Convert.ToDouble(
                    Console.ReadLine());
            }

            while (nt >= 999999999999999)
            {
                Console.Write("Ingrese un número que no supere las 14 cifras: ");
                nt = Convert.ToDouble(
                    Console.ReadLine());
            }

            for (p= 0; p <= nt; p=p+0.1)
                Console.WriteLine("{0}", p.ToString("N1"));
            Console.ReadKey();
        }
    }
}

Última edición por wind7; 04/08/2014 a las 12:20
  #2 (permalink)  
Antiguo 18/09/2014, 08:30
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años
Puntos: 5
Respuesta: Duda sobre el For... (C#)

Hola,

el problema es el siguiente:

cuando vas sumando el 0.1, en un momento te queda en 19.900000000000013 (esto seria 19.9)
cuando a esto le sumas 0.1 queda en 20.000000000000014 , que segun tu codigo es mayor a 20.0 y por eso no lo escribe.

debes verificar bien este for:

for (p= 0; p <= nt; p=p+0.1)
Console.WriteLine("{0}", p.ToString("N1"));

a 80 seguro llegas porque no se da el caso en que lo supere.
__________________
Alquileres en la costa
Se tu mismo

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:27.