web-dev-qa-db-fra.com

Comment imprimer un double avec deux décimales dans Android?

Peut-être que c'est une question idiote, mais je ne peux pas deviner comment la résoudre si cela ne crée pas une méthode. Peut-être y a-t-il une "manière naturelle" de le faire, comme en C par 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'essaye de le montrer:

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

Cela donne quelque chose comme:

Valeur de a: 5.234966145

Et je voudrais juste

Valeur de a: 5.23

Sans changer la valeur réelle de a, il affiche le nombre approximatif mais fonctionne avec le nombre réel.

90
ArcDare
yourTextView.setText(String.format("Value of a: %.2f", a));
190
Goz

Vous pouvez utiliser un DecimalFormat , ou String.format("%.2f", a);

40
FunkTheMonk

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));
26
M. A. Hatab

Pour afficher des chiffres jusqu'à deux décimales, deux possibilités s'offrent à vous: 1) Tout d'abord, vous souhaitez uniquement afficher les chiffres décimaux, le cas échéant. Par exemple - i) 12.10 à afficher en tant que 12.1, ii) 12,00 à afficher en tant que 12. Ensuite, utilisez-

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

2) Deuxièmement, vous souhaitez afficher les chiffres décimaux indépendamment de la présence décimale. Par exemple -i) 12.10 à afficher en tant que 12.10. ii) 12 à afficher comme 12.00.Puis utilisation-

DecimalFormat formater = new DecimalFormat("#.00"); 
23
Fenil

utiliser celui-ci:

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

Remarque: Les données doivent être au format décimal (tvTotalAmount)

14
Ravind Maurya
textView2.setText(String.format("%.2f", result));

et

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

... cause l'erreur "NumberFormatException" dans les paramètres régionaux pour l'Europe, car le résultat est défini sous la forme d'une virgule au lieu d'un point décimal. Une erreur se produit lorsque textView est ajouté à number dans editText. Les deux solutions fonctionnent parfaitement aux États-Unis et au Royaume-Uni.

5
Ranko1977