Comment imprimer un double avec deux décimales en Android? [dupliquer]

cette question a déjà une réponse ici:

  • Comment arrondir un nombre à n chiffres après la virgule dans Java 29 réponses

peut-être que c'est une question idiote, mais je ne peux pas deviner comment la résoudre si elle ne crée pas une méthode. Peut-être qu'il y a une "façon naturelle" de le faire, comme en C pour exemple. Voici le problème:

j'ai un var:

double a;

et je veux le montrer seulement avec 2 ou 3 décimales. Quand j'essaie de le montrer:

Text.setText("Value of a: " + String.valueOf(a));

il donne quelque chose comme:

valeur de a: 5.234966145

et je voudrais juste

valeur de a: 5.23

sans la modification de la valeur réelle de sorte qu'il indique le nombre approximatif mais fonctionne avec le nombre réel.

82
demandé sur Mridang Agarwalla 2011-11-09 16:35:48

6 réponses

yourTextView.setText(String.format("Value of a: %.2f", a));
175
répondu Goz 2018-03-26 12:49:23

vous pouvez utiliser un Décimalformat , ou String.format("%.2f", a);

37
répondu FunkTheMonk 2015-06-02 14:41:33

avant D'utiliser DecimalFormat vous devez utiliser l'importation suivante ou votre code ne fonctionnera pas:

import java.text.DecimalFormat;

le code pour le formatage est:

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case
txtTextField.setText(precision.format(dblVariable));
21
répondu M. A. Hatab 2015-01-24 13:11:09

pour afficher le chiffre jusqu'à deux décimales il y a deux possibilités - 1) Tout d'abord, vous ne voulez afficher des chiffres décimaux si elle est là. Par exemple - je) 12.10 pour être affiché comme 12.1, ii) 12.00 à être affiché comme 12. Puis utiliser -

DecimalFormat formater = new DecimalFormat("#.##"); 

2) Deuxièmement, vous voulez afficher les chiffres décimaux indépendamment de la présence décimale par exemple-i) 12.10 à être affiché comme 12.10. ii) 12 doit être affiché comme 12.00.Puis utiliser -

DecimalFormat formater = new DecimalFormat("#.00"); 
15
répondu Fenil 2016-01-07 13:33:24

utilisez celui-ci:

DecimalFormat form = new DecimalFormat("0.00");
etToll.setText(form.format(tvTotalAmount) );

Note: les données doivent être en format décimal (tvTotalAmount)

8
répondu Ravind Maurya 2018-01-23 12:21:33
textView2.setText(String.format("%.2f", result));

et

DecimalFormat form = new DecimalFormat("0.00");
         textView2.setText(form.format(result) );

...cause erreur "NumberFormatException" dans locale pour L'Europe parce qu'il définit résultat comma au lieu de virgule décimale - erreur se produit lorsque textView est ajouté au nombre dans editText. Les deux solutions fonctionnent très bien aux États-Unis et au Royaume-Uni.

4
répondu Ranko1977 2014-07-25 22:10:31