web-dev-qa-db-fra.com

Comment passer une double valeur à un textview sous Android

Sous Android, je règle le texte d'une vue en mode texte comme étant la réponse à un calcul qui est un type de données double.

Lorsque la valeur double a la valeur 5, textview reçoit la chaîne: 5.0

Code:

double result = number1/number2;
String finalresult = new Double(result).toString();
textView1.setText(finalresult);

Comment formater le texte textView pour qu'il affiche la double valeur dans un format cohérent?

12
Matt9Atkins

Sous Android, attribuez un double à un textView:

Utilisez Double.toString:

result = number1/number2    
String stringdouble= Double.toString(result);
textview1.setText(stringdouble));

ou vous pouvez utiliser le NumberFormat:

Double result = number1/number2;
NumberFormat nm = NumberFormat.getNumberInstance();
textview1.setText(nm.format(result));

Forcer pour une précision de 3 unités:

private static DecimalFormat REAL_FORMATTER = new DecimalFormat("0.###");
textview1.setText(REAL_FORMATTER.format(result));
35
Arpit Patel

Le meilleur moyen est 

   String finalresult = String.valueof(result); 
   textview.setText(finalresult);
1
MAC
Double result = number1/number2;//number1 and number2 are double
textView1.setText(""+result);

Utilisez les deux lignes ci-dessus pour définir la valeur sur textview

0
Shankar Agarwal

Manière la plus simple text.setText(a+"")

0
Shoeb Surve

Essaye ça

 TextView tv = (TextView)findViewById(R.id.button1);
            Double num = (double)4+6;
            if(num%2==0) {
                tv.setText(num.intValue()+""); //if you want to remove the decimal place
            } else {
                tv.setText(num+"");
            }
0
Mark Pazon

vous pouvez utiliser NumberFormat et ensuite vous pouvez faire votre code normal:

 result = number1/number2    
 String finalresult = new Double(result).toString();
 NumberFormat nf = NumberFormat.getInstance();
 nf.setMinimumFractionDigits(0);
 nf.setMaximumFractionDigits(0);
 finalresult= nf.format(result);
 textView1.setText(finalresult);

et là, vous pouvez définir le maximum ou alternativement, vous pouvez convertir en un entier.

double number1 =1.0;
double number2 = 10.4;
int result = (int) (number1/number2);
textView1.setText(String.valueOf(result));

la différence entre eux est que le premier chiffre arrondit le nombre au nombre entier le plus proche et donne une approximation plus précise; lors de la conversion en un nombre entier, il en résultera des cas où le résultat étant 3.9 sera mis à 3, ce qui est un grand diference. Par conséquent, je recommande d'utiliser la variable NumberFormat

0
Raykud