web-dev-qa-db-fra.com

Imprimer un nombre entier avec 2 décimales en Java

dans mon code, j'utilise des entiers multipliés par 100 en décimales (0.1 = 10, etc.). Pouvez-vous m'aider à formater la sortie pour l'afficher sous forme décimale?

13
user1749458
int x = 100;
DecimalFormat df = new DecimalFormat("#.00"); // Set your desired format here.
System.out.println(df.format(x/100.0));
26
Juvanis

Je dirais d'utiliser 0.00 comme format:

      int myNumber = 10;
      DecimalFormat format = new DecimalFormat("0.00"); 
      System.out.println(format.format(myNumber));

Il va imprimer comme:

      10.00

L'avantage ici est:

Si vous aimez: 

      double myNumber = .1;
      DecimalFormat format = new DecimalFormat("0.00"); 
      System.out.println(format.format(myNumber));

Cela va imprimer comme: 

      0.10
10
Yogendra Singh

Vous pouvez imprimer une décimale encodée sous forme d’entier en la divisant par leur facteur

int i = 10; // represents 0.10
System.out.println(i / 100.0);

empreintes

0.1

Si vous devez toujours afficher deux décimales, vous pouvez utiliser

System.out.printf("%.2f", i / 100.0);
5
Peter Lawrey

Vous pouvez essayer ceci: -

new DecimalFormat("0.00######");

ou 

NumberFormat f = NumberFormat.getNumberInstance();
f.setMinimumFractionDigits(2);
1
Rahul Tripathi

Basé sur une autre réponse , avec BigDecimal , cela fonctionne aussi:

BigDecimal v = BigDecimal.valueOf(10,2);
System.out.println(v.toString());
System.out.println(v.toPlainString());
System.out.println(String.format("%.2f", v));
System.out.printf("%.2f\n",v);

Ou même votre bon vieux DecimalFormat travaillera avec BigDecimal :

DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(v));
0
YoYo

vous pouvez utiliser double instate of int . cela vous donne une sortie avec des décimales. et ensuite vous pouvez diviser avec 100.

0
Ole van Santen

vous pouvez utiliser double instate of int . cela vous donne une sortie avec des décimales. 

si vous voulez que le numéro soit placé derrière le point. vous pouvez utiliser ceci:

**int number=100;
double result;
result=number/(number.length-1);**

J'espère que vous pouvez vous en servir.

0
Ole van Santen