J'ai besoin de formater une valeur décimale en chaîne où j'affiche toujours au moins 2 décimales et au plus 4.
donc par exemple
"34.49596" would be "34.4959"
"49.3" would be "49.30"
cela peut-il être fait en utilisant la commande String.format? Ou existe-t-il un moyen plus simple/meilleur de le faire en Java?.
Vous voulez Java.text.DecimalFormat.
DecimalFormat df = new DecimalFormat("0.00##");
String result = df.format(34.4959);
Oui, vous pouvez le faire avec String.format
:
String result = String.format("%.2f", 10.0 / 3.0);
// result: "3.33"
result = String.format("%.3f", 2.5);
// result: "2.500"
Voici un petit extrait de code qui fait le travail:
double a = 34.51234;
NumberFormat df = DecimalFormat.getInstance();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(4);
df.setRoundingMode(RoundingMode.DOWN);
System.out.println(df.format(a));
Java.text.NumberFormat est probablement ce que vous voulez.
Vous voulez Java.text.DecimalFormat
NumberFormat et DecimalFormat sont certainement ce que vous voulez. Notez également la méthode NumberFormat.setRoundingMode()
. Vous pouvez l'utiliser pour contrôler la manière dont l'arrondi ou la troncature est appliqué lors du formatage.