Tema: sumar dinero
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 12/10/2011, 10:36
Avatar de jrevilla
jrevilla
 
Fecha de Ingreso: septiembre-2011
Ubicación: Lima, Peru, Peru
Mensajes: 51
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: sumar dinero

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

El problema del dinero es que los cálculos deben ser siempre exactos, no debería irse ni un céntimo.

El problema de los int o long, aparte de no admitir decimales, es que tienen unos valores limitados. Los int pueden quedarse cortos si manejas cantidades de dinero grandes. Los long en principio valdrían (decimales aparte) si no manejas cantidades de dinero superiores a 4294967295 (la mitad si quieres usar cantidades negativos)

El problema de los float y double es que no son precisos. Una operación tonta que debe dar resultado 1.0, puede darte 0.9999999999. Aparte, aunque los float y doubles admiten cantidades muy grandes, sólo tienen un número de cifras significativas limitado. Por ejemplo, un float tiene 6 cifras signficativas, eso quiere decir que un float sólo te garantiza las primeras seis cifras. En 1.23456789e3, sólo son "buenas" 1.23456e3, el resto puede no ser bueno. Con double tienes 15 cifras significativas, que también puede quedarse escaso para cantidades grandes de dinero.

Por ello, los tipos básicos de java (o en casi todos los demás lenguajes de programación) no sirven para dinero si se quieren manejar cantidades grandes y decimales con exactitud. En el caso de java, puedes usar el BigDecimal, que da toda la precisión que quieras y el número de decimales que definas en un principio.

Se bueno.
gracias eh =) ... usare BigDecimal entonces