el problema con los numeros flotantes es que ellos están representados como
(-1)s * c * be
donde s es 1 bit para el signo, c es el coeficiente, b es la base y e el exponente
en decimal es una nomenclatura cientifica normal
(-1)0*123*10-1 tambien se puede leer como 123x10e-1 que sería 1,23
esto normalmente en programación está en binario (base 2) y para float (32bit) son 24 bits para coeficiente y 6 bits de exponente si no me equivoco (siempre es uno para signo)... así que el numero puede no ser siempre exacto...
con double este rango se agranda a 64 bits, 53 para cociente, 10 para exponente y 1 para signo (creo que es así, no recuerdo exactamente), lo que da numeros de "doble precisión"
ahora dime
con cuales numeros falla?
sabes usar el debugger de tu ide? (por el conio.h creo que debe ser dev c++)
(-1)s * c * be
donde s es 1 bit para el signo, c es el coeficiente, b es la base y e el exponente
en decimal es una nomenclatura cientifica normal
(-1)0*123*10-1 tambien se puede leer como 123x10e-1 que sería 1,23
esto normalmente en programación está en binario (base 2) y para float (32bit) son 24 bits para coeficiente y 6 bits de exponente si no me equivoco (siempre es uno para signo)... así que el numero puede no ser siempre exacto...
con double este rango se agranda a 64 bits, 53 para cociente, 10 para exponente y 1 para signo (creo que es así, no recuerdo exactamente), lo que da numeros de "doble precisión"
ahora dime
con cuales numeros falla?
sabes usar el debugger de tu ide? (por el conio.h creo que debe ser dev c++)