...
Otra cosa, un amigo me comentó que para evitar problemas de precisión quizás era mejor utilizar enteros de 64 bits y realizar las operaciones con esos enteros, que después las escale pero no entiendo la forma de hacerlo,
Tu amigo recomienda que uses aritmética de punto fijo (Googlear).
Es una alternativa para mejorar el error de redondeos o cuando los resultados o las entradas tienen una cantidad fija de decimales.
podrían explicarme o al menos enviarme un enlace/tutorial para trabajar decimales con enteros de 64 bits?.
En punto fijo los números se guardan como un entero (N) pero está implícito que el número representado es N/d .
Ahí la suma/resta es: N3=N1±N2
El producto necesita un ajuste: N3=N1*N2/d
La division también: N3=d*N1/N2
Si trabajás a 2 decimales: d=100 ; si es con 3 decimales: d=1000
Pero también puede ser d=4, 16, 256, 1024,... que tiene la ventaja que los ajustes en multiplicación/diivisión son desplazamientos.
De todas maneras, las operaciones con enteros o punto fijo no tienen recetas for dummies. Si la operación es larga y no tenés claro lo que estás haciendo vas a tener errores por truncamiento/overflow a cada rato. Y si es corta, es mas sencillo tunear la escritura de la operación que cualquier otro método. Sencillamente porque se depende mucho del tipo, orden y cantidad de operaciones.
La única solución es saber como se evalúa la operación y se va manejando los tipos de variable , y tener un mínimo de conocimientos en álgebra para reacomodar la operación.
Ojo que un mínimo conocimiento en álgebra no es el de la ESO, pues ése es
nulo y empeorando.
Cuando la operación es sencilla bastan los ojos para darse cuenta de la influencia de los errores de truncamiento, pero cuando es de mediana a complicada ya puede ser muy difícil seguir la propagación (en procesos iterativos por ejemplo).
En estos últimos casos, el truco usado desde los comienzos de la informática es hacer dos programas: Uno con tipos de variable exagerados (cálculo preciso y lento) y otro con tipos de variable mas eficientes --> Se comparan las diferencias y se corrige donde lo merezca.