Ce que je voudrais, c'est une méthode pour convertir un double en une chaîne qui arrondit en utilisant la méthode de la moitié supérieure - c'est-à-dire que si la décimale à arrondir est 5, elle arrondit toujours au nombre supérieur. Il s'agit de la méthode d'arrondi standard à laquelle la plupart des gens s'attendent dans la plupart des situations.
J'aimerais également que seuls les chiffres significatifs soient affichés, c'est-à-dire qu'il ne doit pas y avoir de zéros à la fin.
Je sais qu'une méthode pour y parvenir est d'utiliser la fonction String.format
méthode :
String.format("%.5g%n", 0.912385);
retours :
0.91239
ce qui est très bien, mais il affiche toujours les nombres avec 5 décimales même s'ils ne sont pas significatifs :
String.format("%.5g%n", 0.912300);
retours :
0.91230
Une autre méthode consiste à utiliser le DecimalFormatter
:
DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
retours :
0.91238
Cependant, comme vous pouvez le constater, cette méthode utilise l'arrondi à la moitié de la valeur nominale. C'est-à-dire qu'il arrondit à la baisse si le chiffre précédent est pair. Ce que j'aimerais, c'est ceci :
0.912385 -> 0.91239
0.912300 -> 0.9123
Quelle est la meilleure façon d'y parvenir en Java ?