Errores en las calculadoras de todo el mundo.
¿No es un poco exagerado hablar de "error"?
Está en el numero \( 42*10^{30} + 31 \).
Las calculadoras dan de valor:
\( 42*10^{30} + 31 = 37*1135135135135135135135135135136 \).
Su valor es:
\( 42*10^{30} + 31 = 37*1135135135135135135135135135135 + 36 \).
Aparentemente en el ejemplo usaste la calculadore de Windows.
Esta muestra 32 cifras significativas, sin contar la coma y el ceros delante de la coma, y la última cifra se redondea.
Simplemente te está redondeando la última cifra.
Con mas cifras significativas
\( (42*10^{30} + 31)/37= 1135135135135135135135135135135.\underbrace{972972972}_{\text{redondea}} \)
Pero eso es lo que muestra, internamente guarda algunos bits del resultado y los utiliza en la operación siguiente.
Si fuera \( 1/3= 0.33333333333333333333333333333333 \) (un clásico)
Internamente ha guardado unos bits, si ahora tecleo \( *3= \) , es decir, lo que tenía en el display \( *3= \) , el resultado es
1.
En cambio si ingreso a mano los 32 '3'
\( 0.33333333333333333333333333333333*3=0.99999999999999999999999999999999 \) (32 '9')
Otro ejemplo puede ser con
\( (42*10^{30} + 31)=42000000000000000000000000000031 \)
Si al número mostrado le vas sumando \( 0.1 \) sucesivamente, te va a mostrar siempre lo mismo. Recién al quinto va a pasar a 32.
La cantidad de bits "ocultos" depende de la calculadora, si se trata de computadoras de la precisión y lenguaje usados.
Si bien en computadoras los procesadores matemáticos siempre siguieron parcialmente la norma IEEE 754 con variables en precisión simple,doble y cuádruple (4,8 y 16 bytes) , al viejo Turbo Pascal no le importaba pues incluía un tipo de 6 bytes.