Como es sabido Java se utiliza mucho en el sector financiero, por eso tengo una gran duda, se que el tipo de dato double tiene una carencia de precisión. por ejemplo
Escribe el siguiente código:
double unCentavo = 0.01;
double suma=unCentavo+unCentavo+unCentavo+unCentavo+unCentavo+unCentavo;
System.out.println(suma);
Que se imprime? Si contestaste: 0.06, estas equivocado.
Se imprime: 0.060000000000000005
Fuente :
Esto quizás pueda resultar irrelevante, pero para asuntos financieros y cosas de ese tipo, eso generaría un error y perdidas en dinero real, es por que eso que Java en respuesta a esta necesidad nos ofrece BigDecimal, yo tome el curso de java básico del 2015, y en ese tiempo también teníamos esa duda, pensé que hablarían un poco de eso acá, Actualmente no uso java, sino que me enfoque mas en js, pero pienso volver a retomar java y postular a un trabajo donde lo utilicen, mi pregunta es aparte de BigDecimal hay otra forma de solucionar esto?, he buscado como implementar bigdecimal y me parece demasiadas lineas de código, no tengo mucha experiencia en esta tecnología por eso lo pregunto, creo que es necesario por que para muchos que toman en este curso les va interesar como manejar datos importantes y quizás apliquen
a trabajos en el sector financiero, donde double por ningún motivo se debería utilizar para manejar cuentas bancarias.
Creo que por lo que leí en el link que les deje, este error se produce por el sistema binario que utilizan los procesadores y no se corresponde al sistema decimal que utilizamos nosotros. Por cierto este problema de precisión he notado que esta en todos los lenguajes de programacion, pero Java tiene BigDecimal, por eso considero que merece mucho la pena aprenderlo (Para mi es el mejor lenguaje al final todos quieren parecerse a el).