Paikhuan escribió:Bueno, creo que es diferente. Creo que el profesor quiere utilizar la idea de reales de precision normal y precision doble, con todo lo que ello conlleva.
si trabajas en precision normal solo te "reconoceria" como cifra minima(lo que llaman epsilon) el valor 1E10-7 osease 0.0000001 y precision doble seria algo como 1E-15. digo como cifra minima por que todo menor que ese numero lo trataria como un cero
En realidad sí se pueden representar números más pequeños que 10^-7 y 10^-15 con float y double, al ser en coma flotante la recta real no está dividida en fracciones del mismo tamaño, lo que pasa es que se pierde precisión. Por ejemplo podrías representar 10^-14 con precisión normal y ser el resultado exacto y operar con él sin que te lo tome como 0, pero no 1+10^-14, porque se redondería a uno de los 2 números más cercanos representables con precisión normal.
Lo que dices de 10^-7 y 10^-15 serían las precisiones al expresar el número con notación científica. Con los ejemplos de antes:
- 10^-14 en notación científica: 1 * 10^-14 => se representa con exactitud.
- 1+10^-14 en notación científica: 1.00000000000001 * 10^0 => tiene la mantisa con más de 7 decimales, por lo que hay que redondear a 1.0000000 * 10^0 y se pierde precisión.
Hay que ajustar el epsilon al problema dependiendo de la magnitud de los números con los que operemos. En el caso de tu ejercicio, al coincidir 1 con su representación en notación científica pues debería coincidir la precisión con el epsilon.
Espero no haber dicho ninguna burrada, ahí queda lo poco que recuerdo de este tema.