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.
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