Comment arrondir un nombre à n chiffres après la virgule dans Java

Ce que je voudrais, c'est une méthode pour convertir un double en une chaîne qui arrondit à l'aide de demi-méthode - c'est à dire si la décimale arrondie à 5, on arrondit toujours au prochain numéro. C'est la méthode standard de l'arrondissement la plupart des gens s'attendre dans la plupart des situations.

Je voudrais aussi uniquement de chiffres significatifs pour être affiché à - dire qu'il ne doit pas être tous des zéros à la fin.

Je connais une méthode pour le faire est d'utiliser le String.format méthode:

String.format("%.5g%n", 0.912385);

retourne:

0.91239

qui est excellent, mais il affiche toujours les nombres avec décimales 5, même si elles ne sont pas significatives:

String.format("%.5g%n", 0.912300);

retourne:

0.91230

Une autre méthode consiste à utiliser le DecimalFormatter:

DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);

retourne:

0.91238

Cependant, comme vous pouvez le voir, cette utilise des demi-même arrondissement. Qu'en est-il arrondir à la baisse si le chiffre est pair. Ce que j'aimerais c'est ceci:

0.912385 -> 0.91239
0.912300 -> 0.9123

Quelle est la meilleure façon de le réaliser en Java?