Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Naimaderis en 16 Diciembre 2016, 03:33 AM

Título: Problema con float, no toman el valor que tienen que tomar
Publicado por: Naimaderis en 16 Diciembre 2016, 03:33 AM
Estoy teniendo un problema con el lenguaje, algo, que no entiendo bien, el siguiente código, no para nunca:


#include <stdio.h>

int main() {

   float y;

   for (y= 0.1; y != 1.0 ; y = y + 0.1){

       printf( "%f \n", y );

   }

   return 0;
}


Ademas, los float que muestra cuando compilo tienen demaciados decimales, los cuales no se limitan a 0.1 , 0.2 , 0.3 sino por ejemplo 273.708489.

Siento que hay algo detras de todo esto, que no estoy comprendiendo.

Para observar mejor donde estaba el problema, le coloque esta linea:

if (y > 1)
       {
           break;
       }


Me di cuenta, que "y" toma el valor 1, el cual se muestra como "1.0000000".

Probe con limitar los numeros que se muestran despues de la coma, pero aun asi, no funciono.
Título: Re: Problema con float, no toman el valor que tienen que tomar
Publicado por: engel lex en 16 Diciembre 2016, 03:42 AM
puede que no sea una respuesta directa pero aquí todo lo que hay que saber sobre los float inicialmente
https://es.wikipedia.org/wiki/Coma_flotante (https://es.wikipedia.org/wiki/Coma_flotante)


puede que no sea puntual pero: es un problema de precisión