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.