Le code suivant montre trois façons de formater un nombre à virgule flottante pour l'afficher avec le nombre voulu de décimales. La deuxième façon est celle généralement recommandée.
import java.io.*;
import java.text.*;
import java.util.*;
public class FormatageVirguleFlottante {
public static void main(String args[]) {
double pi = 3.141592654;
int nbDecimales = 4;
System.out.println(pi);
System.out.println();
//
// Méthode 1 : transformer le nombre en chaîne de caractères
//
String chaine = new Double(pi).toString();
int posPoint = chaine.indexOf(".");
chaine = chaine.substring(0, Math.min(chaine.length(),
posPoint + nbDecimales + 1));
System.out.println(chaine);
System.out.println();
//
// Méthode 2 (recommandée) : avec la classe java.text.NumberFormat
//
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(nbDecimales);
System.out.println(nf.format(pi));
System.out.println();
//
// Méthode 3 : pour les nostalgiques du langage C
//
Formatter formateur = new Formatter((OutputStream) System.out);
try {
formateur.format("%1.4f %n%n", pi);
}
catch (IllegalFormatException ife) {
System.err.println("Format invalide");
System.exit(1);
}
formateur.flush();
formateur.close();
}
}