Arredendamento de double

Queria saber se existi alguma classe do java que arredonda um double

ex:
18.6789

eu queria que ficasse :

18.68

tava olha a classe DecimalFormat mas nao achei o que queria…

caso nao exista… eu tava pensando em transforma o numero em um String e arredondar a terceira casa antes da virgula… caso exista…
existi algum jeito melhor?
obrigado.

Tenta assim[code]

DecimalFormat fm = new DecimalFormat(“0,00”);
fm.format(seuvalordouble);[/code]

java.lang.Math :wink:

[quote=luiz_ross]Tenta assim[code]

DecimalFormat fm = new DecimalFormat(“0,00”);
fm.format(seuvalordouble);[/code][/quote]

Exatamente luiz_ross, mas deve-se usar “.”(ponto) no lugar da vírgula.
Ficando assim:

[code]

DecimalFormat fm = new DecimalFormat(“0.00”);
fm.format(seuvalordouble);[/code]

flws

Tem sim:

double valor = 18.6789;
valor = Math.round((valor * 100)) / 100;

Converter para string está entre as piores alternativas que alguém poderia pensar.

[quote=ViniGodoy]Tem sim:

double valor = 18.6789;
valor = Math.floor((valor * 100) + 0.5) / 100;

Converter para string está entre as piores alternativas que alguém poderia pensar.[/quote]
Concordo

… ou, generalizando:

double arredonda(double original, int casas) {
    double multiplicador = Math.pow(10, casas);
    return Math.round(valor * multiplicador) / multiplicador;
}
...
double valor = 18.6789;
valor = arredonda(valor);
...