Comment arrondir un nombre à n décimales en Java ?

Les langages permettent d'arrondir un nombre de plusieurs manières : arrondir au nombre supérieur ou inférieur, ou effectuer un arrondi de façon plus classique en fonction de la valeur de la décimale.

Les langages de développement permettent d'arrondir un nombre de plusieurs manières. On peut l'arrondir toujours au nombre supérieur ou au nombre inférieur, ou alors effectuer un arrondi de façon plus classique en fonction de la valeur de la décimale (consultez aussi, notre tutoriel sur la génération d'un nombre aléatoire, random, en Java compris entre deux chiffres).

Le langage Java fournit la classe DecimalFormat qui permet de formater un nombre décimal selon la méthode souhaitée. Cette classe possède la méthode setRoundingMode() qui, grâce à une constante passée en paramètre, définit de quelle manière le nombre doit être arrondi. Pour utiliser un arrondi similaire à celui enseigné à l'école, on utilisera la constante HALF_UP.

Exemple :

DecimalFormat df = new DecimalFormat(#.#####);
df.setRoundingMode(RoundingMode.HALF_UP);
df.format(0.912385); //Le nombre sera arrondi à 0,91239.
df.format(0.912384); //Le nombre sera arrondi à 0,91238.

Si vous utilisez une version de Java antérieure à la 1.6, cette technique ne fonctionnera pas. Une autre solution consiste à appeler la méthode Math.Round() qui permet d'arrondir un nombre au plus proche entier. En multipliant ce nombre par un multiple de 10 avec autant de zéros que de décimales souhaitées, puis en le redivisant, on obtiendra le même résultat.

Exemple :

(double)Math.round(0.912385 * 100000) / 100000 //Le nombre sera arrondi à 0,91239.
(double)Math.round(0.912384 * 100000) / 100000 //Le nombre sera arrondi à 0,91238.

Java