J'ai des problèmes pour formater les décimales d'un double. Si j'ai une valeur double, par exemple 4,0, comment puis-je formater les décimales de façon à ce que ce soit 4,00 à la place ?
Réponses
Trop de publicités?L'un des moyens serait d'utiliser NumberFormat .
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(4.0));
Sortie :
4.00
Avec Java 8, vous pouvez utiliser format
méthode : -
System.out.format("%.2f", 4.0); // OR
System.out.printf("%.2f", 4.0);
-
f
est utilisé pourfloating
valeur du point.. -
2
après la virgule indique le nombre de décimales après la virgule..
Pour la plupart des versions de Java, vous pouvez utiliser DecimalFormat
: -
DecimalFormat formatter = new DecimalFormat("#0.00");
double d = 4.0;
System.out.println(formatter.format(d));
Utilisez String.format :
String.format("%.2f", 4.52135);
Comme dans les documents :
La locale toujours utilisée est celle retournée par
Locale.getDefault()
.
En utilisant String.format, vous pouvez le faire :
double price = 52000;
String.format("$%,.2f", price);
Notez la virgule qui rend cette réponse différente de celle de @Vincent.
Sortie :
$52,000.00
Une bonne ressource pour le formatage est le officiel page java sur le sujet
Vous pouvez toujours utiliser la méthode statique printf from System.out
- vous implémenteriez alors le formateur correspondant ; cela permet d'économiser de l'espace sur le tas, ce que d'autres exemples vous obligeaient à faire.
Ex :
System.out.format("%.4f %n", 4.0);
System.out.printf("%.2f %n", 4.0);
Cela permet d'économiser de l'espace sur le tas, ce qui est un gros avantage, mais je pense néanmoins que cet exemple est beaucoup plus facile à gérer que toute autre réponse, d'autant plus que la plupart des programmeurs connaissent la fonction printf en C (Java modifie légèrement la fonction/méthode).
- Réponses précédentes
- Plus de réponses