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.
6 réponses
vous pouvez utiliser un Décimalformat , ou String.format("%.2f", a);
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));
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");
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)
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.