14 octubre 2006

DecimalFormat

Una pequeña estupidez, que está comentada, pero me he tropezado con ella, sobre la clase DecimalFormat de java.

Resulta que si como formato de números ponemos "%" o algo con ese caracter, como "###.##%", la clase multiplica el número por 100 y lo pone en formato de tanto por ciento.

DecimalFormat formateador = new DecimalFormat("%");
System.out.println (formateador.format(0.344));

devuelve como salida

%34

Mientras que

DecimalFormat formateador = new DecimalFormat("###.## %");
System.out.println (formateador.format(0.344));

devuelve como salida

34,4 %

Es una buena forma de evitar ir multiplicando o dividiendo el número en código. Normalmente para cuentas con porcentajes suele venir mejor usar el tanto por uno. Lo del tanto por ciento normalmente es para mostrar en pantalla.

Me explico:
  • Para calcular el 34% de un numero, lo más fácil es hacer numero*0.34 y no la cuenta habitual de numero*34.0/100.0
  • Para calcular qué porcentaje es un número a de un número b, lo fácil es hacer a/b que lo devuelve en tanto por uno, y no lo de a/b*100.0 que lo devolvería en tanto por ciento.
  • etc, etc.
Vaya, que nos ahorramos andar arrastrando por el código el dichoso 100...

No hay comentarios: