Как передать двойное значение в textview в Android - PullRequest
12 голосов
/ 03 апреля 2012

В Android я устанавливаю текст текстового представления как ответ на вычисление, которое имеет тип данных double.

Когда значение типа double имеет значение 5, текстовое представление получаетстрока: 5.0.

Код:

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

Как отформатировать текст textView, чтобы он отображал двойное значение в согласованном формате?

Ответы [ 6 ]

36 голосов
/ 03 апреля 2012

В Android назначьте двойное для textView:

Используйте Double.toString:

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

или вы можете использовать NumberFormat:

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

Для силы на 3 единицы точности:

private static DecimalFormat REAL_FORMATTER = new DecimalFormat("0.###");
textview1.setText(REAL_FORMATTER.format(result));
1 голос
/ 03 апреля 2012

Лучший способ это

   String finalresult = String.valueof(result); 
   textview.setText(finalresult);
0 голосов
/ 24 мая 2017

Самый простой способ text.setText(a+"")

0 голосов
/ 03 апреля 2012
Double result = number1/number2;//number1 and number2 are double
textView1.setText(""+result);

Используйте две вышеупомянутые строки, чтобы установить значение для textview

0 голосов
/ 03 апреля 2012

вы можете использовать NumberFormat , а затем вы можете сделать свой обычный код:

 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);

и там вы можете установить максимум или, альтернативно, вы можете привести к целому числу.

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

разница между ними заключается в том, что первый округляет число до ближайшего целого числа и будет более точным приближением, в то время как приведение к целому числу приведет к тому, что в результате результат 3,9 будет равен 3 и что это большая разница. Поэтому я рекомендую использовать NumberFormat

0 голосов
/ 03 апреля 2012

Попробуйте это

 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+"");
            }
...