L'exercice qui suit permet de travailler sur les chaînes de caractères.
Il s'agit de définir une méthode permettant de limiter le nombre de décimales d'un double, c'est-à-dire de tronquer la chaîne de caractères représentant le double si le nombre de décimales est supérieure à une valeur donnée.
Pour cela, on définira une classe contenant une méthode statique, la méthode tronque, ayant deux paramètres : un param&eagrave;tre de type String représentant un double x et un entier nbDecimales. La méthode devra retourner une chaîne de caractères donnant le double x éventuellement tronqué de façon à avoir au plus nbDecimales décimales. On ne cherchera pas à "arrondir au plus proche", on enlèvera simplement les décimales excédentaires, que x soit positif ou négatif.
La valeur de x et celle de nbDecimales seront transmis par la ligne de commande.
Voici quelques exemples d'exécution.
java EcritDouble 98.7689 2
98.76
java EcritDouble -0.765 1
-0.7
java EcritDouble -4.765 0
-4
Les méthode suivantes de la classe String pourraient vous servir :
Voici un corrigé EcritDouble.java.
Remarque
Le programme suivant permet aussi, en s'appuyant sur l'API, d'appprocher l'objectif de notre exercice de deux manières différentes : en utilisant la classe java.text.DecimalFormat ou, encore plus simple, en utilisant la méthode printf.
import java.text.DecimalFormat;
class Essai {
public static void main(String[] arg) {
double d = 4.123456789;
DecimalFormat f = new DecimalFormat();
f.setMaximumFractionDigits(2);
System.out.println(d + " avec deux decimales : " + f.format(d));
System.out.printf("et aussi\n%f avec deux decimales : %.2f\n", d, d);
}
}
La sortie est :
4.123456789 avec deux decimales : 4.12 et aussi 4.123457 avec deux decimales : 4.12