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?Fonctionne à 100%.
import java.text.DecimalFormat;
public class Formatting {
public static void main(String[] args) {
double value = 22.2323242434342;
// or value = Math.round(value*100) / 100.0;
System.out.println("this is before formatting: "+value);
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(value));
}
}
Première importation NumberFormat
. Puis ajoutez ceci :
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
Cela vous donnera deux décimales et mettra un signe dollar s'il s'agit d'une devise.
import java.text.NumberFormat;
public class Payroll
{
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
int hoursWorked = 80;
double hourlyPay = 15.52;
double grossPay = hoursWorked * hourlyPay;
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
System.out.println("Your gross pay is " + currencyFormatter.format(grossPay));
}
}
Je sais que c'est un vieux sujet, mais si vous voulez vraiment avoir le point au lieu de la virgule, sauvegardez votre résultat en tant que X,00 dans une chaîne et ensuite changez-le simplement pour un point afin d'obtenir le X,00.
Le moyen le plus simple est d'utiliser la fonction "replace".
String var = "X,00";
String newVar = var.replace(",",".");
La sortie sera le X.00 que vous souhaitiez. Pour vous faciliter la tâche, vous pouvez également tout faire en une fois et l'enregistrer dans une double variable :
Double var = Double.parseDouble(("X,00").replace(",",".");
Je sais que cette réponse n'est pas utile pour le moment, mais peut-être que quelqu'un qui consulte ce forum cherchera une solution rapide comme celle-ci.
- Réponses précédentes
- Plus de réponses