web-dev-qa-db-fra.com

Convertir un nombre en 2 décimales en Java

Je veux convertir un nombre en 2 décimales (toujours afficher deux décimales) lors de l'exécution. J'ai essayé du code, mais il ne fait que, comme indiqué ci-dessous

 20.03034 >> 20.03
 20.3 >> 20.3  ( my code only rounds not converts )

cependant, je veux qu'il fasse ceci:

 20.03034 >> 20.03
 20.3 >> 20.30 (convert it to two decimal places)

Mon code ci-dessous:

angle = a variable
angle_screen =  a variable

DecimalFormat df = new DecimalFormat("#.##");
angle = Double.valueOf(df.format(angle));
angle_screen.setText(String.valueOf(angle) + tmp);

Toute aide sur la façon de le faire serait formidable, merci.

26
Jack Trowbridge

essayez cette new DecimalFormat("#.00");

mise à jour:

    double angle = 20.3034;

    DecimalFormat df = new DecimalFormat("#.00");
    String angleFormated = df.format(angle);
    System.out.println(angleFormated); //output 20.30

Votre code n'utilisait pas correctement le format décimal

Le 0 dans le modèle signifie un chiffre obligatoire, le # signifie un chiffre facultatif.

mise à jour 2: vérifiez la réponse ci-dessous

Si vous voulez que 0.2677 Soit formaté en 0.27, Vous devez utiliser new DecimalFormat("0.00"); sinon ce sera .27

67
Rogel Garcia
DecimalFormat df=new DecimalFormat("0.00");

Utilisez ce code pour obtenir exactement deux décimales. Même si la valeur est 0,0, elle donnera u 0,00 en sortie.

Au lieu de cela, si vous utilisez:

DecimalFormat df=new DecimalFormat("#.00");  

Il ne convertira pas 0,2659 en 0,27 . Vous obtiendrez une réponse comme . 27.

21
Anto Robinson

Essayez ceci: String.format("%.2f", angle);

15
Jagger

Essayer

DecimalFormat df = new DecimalFormat("#,##0.00");
2
Andre