Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2013, 10:30
darkram
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 17 años, 6 meses
Puntos: 1
BigDecimal Duda

Hola foreros !!!

Llevo un rato dando vueltas por internet y no encuentro la diferencia entre:
ROUND_HALF_DOWN y ROUND_HALF_UP

Código Java:
Ver original
  1. public static void main(String args[])
  2.   {
  3.       BigDecimal num_1 = new BigDecimal(5.92929292);
  4.       BigDecimal num_2 = new BigDecimal(9333.0000);
  5.       BigDecimal num_3 = new BigDecimal(5.99);
  6.      
  7.       System.out.println("num_1 = " + num_1 + " : " + num_1.setScale(2, BigDecimal.ROUND_HALF_DOWN));
  8.       System.out.println("num_2 = " + num_2 + " : " + num_2.setScale(2, BigDecimal.ROUND_HALF_DOWN));
  9.       System.out.println("num_3 = " + num_3 + " : " + num_3.setScale(2, BigDecimal.ROUND_HALF_DOWN));
  10.      
  11.       System.out.println("---------------------------------------------------------------------------------");
  12.      
  13.       System.out.println("num_1 = " + num_1 + " : " + num_1.setScale(2, BigDecimal.ROUND_HALF_UP));
  14.       System.out.println("num_2 = " + num_2 + " : " + num_2.setScale(2, BigDecimal.ROUND_HALF_UP));
  15.       System.out.println("num_3 = " + num_3 + " : " + num_3.setScale(2, BigDecimal.ROUND_HALF_UP));
  16.      
  17.   }

OUTPUT:

num_1 = 5.929292919999999966762516123708337545394897460937 5 : 5.93
num_2 = 9333 : 9333.00
num_3 = 5.990000000000000213162820728030055761337280273437 5 : 5.99
---------------------------------------------------------------------------------
num_1 = 5.929292919999999966762516123708337545394897460937 5 : 5.93
num_2 = 9333 : 9333.00
num_3 = 5.990000000000000213162820728030055761337280273437 5 : 5.99


¿Alguien me lo podría explicar, por favor?

Muchas gracias por vuestro tiempo.

Un saludo.