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
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.
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…