Arredondamento de números (RESOLVIDO)

Pessoal, eu estou usando a classe DecimalFormat para arredondar alguns valores. Eu quero ter um resultado como o que segue abaixo.
27,382 -> 27,38
27,383 -> 27,38
27,384 -> 27,38
27,385 -> 27,39
27,386 -> 27,39
27,387 -> 27,39
27,388 -> 27,39
27,389 -> 27,39

O problema é que quando o valor é, por exemplo, “27,385”
ela me retorna “27,38”, sendo q deveria retornar “27,39”.

Alguém sabe como devo tratar isto?

solução

public static double round(double val, int places) {
long factor = (long) Math.pow(10, places);

    // Shift the decimal the correct number of places
    // to the right.
    val = val * factor;

    // Round to the nearest integer.
    long tmp = Math.round(val);

    // Shift the decimal the correct number of places
    // back to the left.
    return (double) tmp / factor;
}

onde val é o valor e places o número de casas decimais.