Double com dois decimais

Gastaria de saber como poderia fazer para uma variável que receba um double trate e lhe deixe com apenas 2 casas decimais.
Ex: double num=121,474545445;

gostaria que ficasse apenas 121,47 (ou arredondasse tanto faz).
como irei receber através de uma conta num da pra tirar as outras casas.

1 curtida

use o DecimalFormat

[code]
import java.text.DecimalFormat;

DecimalFormat df = new DecimalFormat(“0.##”);
String dx = df.format(valor);[/code]

tem mais aqui
http://www.devmedia.com.br/post-7369-Formatando-numeros-com-Numberformat.html

1 curtida

[quote=Jonhkr]use o DecimalFormat

[code]
import java.text.DecimalFormat;

DecimalFormat df = new DecimalFormat(“0.##”);
String dx = df.format(valor);[/code]

tem mais aqui
http://www.devmedia.com.br/post-7369-Formatando-numeros-com-Numberformat.html[/quote]

Muito obrigado cara, era exatamente isso que precisava, mais tenho uma dúvida, ele pode formatar tb valores que já sejam double?
pois vi que ele passa formatado para uma String, terei que converte-la depois?

Normalmente, apenas tratamos o número de casas decimais na exibição do dado. É porque cortar casas decimais significa também reduzir a precisão do dado, e ter erros de cálculo se você for, por exemplo, somar vários números.

Se quiser realmente trabalhar com menos casas decimais, dê uma olhada na classe BigDecimal:
http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial