web-dev-qa-db-fra.com

Format double à 2 décimales avec 0 en tête

Duplicata possible:
Arrondissez un double à 2 chiffres significatifs après le point décimal

J'essaie de formater un double à 2 décimales avec des zéros non significatifs et il n'y a pas de chance. Voici mon code:

Double price = 32.0;
DecimalFormat decim = new DecimalFormat("#.##");
Double price2 = Double.parseDouble(decim.format(price));

Et je veux que la sortie soit 32.00 à la place je reçois 32.0
Des solutions ??

34
Bat_Programmer

OP veut des zéros non significatifs. Si c'est le cas, alors selon Tofubeer:

    DecimalFormat decim = new DecimalFormat("0.00");

Modifier:

Rappelez-vous, nous parlons ici de mise en forme des nombres, pas de la représentation interne des nombres.

    Double price = 32.0;
    DecimalFormat decim = new DecimalFormat("0.00");
    Double price2 = Double.parseDouble(decim.format(price));
    System.out.println(price2);

imprimera price2 en utilisant le format par défaut. Si vous souhaitez imprimer la représentation formatée, imprimez en utilisant le format:

    String s = decim.format(price);
    System.out.println("s is '"+s+"'");

Dans cette optique, je ne pense pas que votre parseDouble() fasse ce que vous voulez, ni ne le peut.

53
Tony Ennis

Essaye ça:

 DecimalFormat decim = new DecimalFormat("#.00");
14
TofuBeer