Classe para Arredondamento

Opa! =)

Existe alguma função se arredondamento pronta em java? Semelhando ao “ROUND” do SQL… aonde eu posso escolher a qtdade de casas decimais…

Obrigado

Em java não há funções e sim métodos e classes.
A classe ali em embaixo resolve isso que você perguntou. :wink:

http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html

Força do hábito =)

Obrigado =)

Use BigDecimal

public static double arredondaValor(int casasDecimais, double valor) { BigDecimal decimal = new BigDecimal(valor); return decimal.setScale(casasDecimais, BigDecimal.ROUND_DOWN).doubleValue(); }

DecimalFormat formata a exibiçao mas o valor armazenado continua com n casas, por isso muita gente acaba tendo problemas quando utiliza um valor que esta “mascarado” para o usuario em operações acarretando em resultados != do esperado

BigDecimal tem todo tipo de arredondamento que vc pode imaginar

// BigDecimal.ROUND_CEILING; // BigDecimal.ROUND_DOWN; // BigDecimal.ROUND_FLOOR; // BigDecimal.ROUND_HALF_DOWN; // BigDecimal.ROUND_HALF_EVEN; // BigDecimal.ROUND_HALF_UP; // BigDecimal.ROUND_UNNECESSARY; // BigDecimal.ROUND_UP;

Você pode utilizar todas as indicadas, inclusive a Math.round() também é muito boa…