119 votes

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

C'est peut-être une question idiote, mais je ne vois pas comment résoudre ce problème s'il ne crée pas de méthode. Il y a peut-être une "façon naturelle" de le faire, comme en C par exemple. Voici le problème :

J'ai une var :

double a;

Et je veux l'afficher uniquement avec 2 ou 3 décimales. Lorsque j'essaie de l'afficher :

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

Il donne quelque chose comme :

Valeur d'un : 5.234966145

Et je voudrais juste

Valeur d'un : 5.23

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

230voto

Goz Points 35007
yourTextView.setText(String.format("Value of a: %.2f", a));

53voto

Fenil Points 756

Pour l'affichage d'un chiffre jusqu'à deux décimales, il y a deux possibilités. 1) Premièrement, vous ne voulez afficher les chiffres décimaux que s'ils sont présents. Par exemple - i) 12.10 doit être affiché comme 12.1, ii) 12.00 doit être affiché comme 12. Dans ce cas, utilisez

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

2) Deuxièmement, vous voulez afficher les chiffres décimaux indépendamment de la décimale présente. Par exemple -i) 12.10 doit être affiché comme 12.10. ii) 12 doit être affiché comme 12.00. Alors utilisez-

DecimalFormat formater = new DecimalFormat("0.00");

47voto

FunkTheMonk Points 6639

Vous pouvez utiliser un Format décimal ou String.format("%.2f", a);

36voto

M. A. Hatab Points 1

Avant d'utiliser DecimalFormat, vous devez utiliser l'importation suivante, sinon votre code ne fonctionnera pas :

import java.text.DecimalFormat;

Le code de formatage est le suivant :

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case
txtTextField.setText(precision.format(dblVariable));

23voto

Ravind Maurya Points 694

Utiliser celle-ci :

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X