2012-04-03 9 views
11

W Androidzie ustawiam tekst tekstu jako odpowiedź na obliczenie, które jest typem danych double.Jak przekazywać podwójną wartość do widoku tekstowego w Androidzie

Gdy wartość podwójna ma wartość 5, widok tekstowy otrzymuje ciąg: 5.0.

Kod:

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

Jak mogę sformatować tekst TextView tak, że pokazuje podwójną wartość w spójnym formacie?

+0

ciąg finalresult = wynik + ""; lub String finalresult = Double.toString (wynik); –

Odpowiedz

28

W Androidzie przypisać podwójny do TextView:

Zastosowanie Double.toString:

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

lub można użyć NumberFormat:

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

Aby wymusić precyzję 3 jednostek:

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

To robi do 3 miejsc po przecinku, myślę. Jeśli chciałem zrobić 0.00001 * 2, to da mi 0 – Matt9Atkins

+0

Myślę, że Double.toString powinien dać odpowiedź w ciągu, jeśli wynik będzie 0.0000000000000000001, a następnie da ci to samo. –

+0

Nadal chcę sformatować odpowiedź, ale nie będę ograniczać się do 3 miejsc po przecinku – Matt9Atkins

0

Najlepszym sposobem jest

String finalresult = String.valueof(result); 
    textview.setText(finalresult); 
0

Spróbuj

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

można użyć NumberFormat a następnie można wykonać normalny kod:

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

i tam można ustawić maksymalnie lub alternatywnie możesz rzutować na liczbę całkowitą.

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

różnica między nimi jest taka, że ​​pięść będzie jeden zaokrąglić liczbę do najbliższej liczby całkowitej, a będzie dokładniejsza aproksymacji, podczas rzucania do liczby całkowitej doprowadzi mieć przypadki wynikiem bardzo dobrym 3.9 zostanie wprowadzone jako 3 i to jest duża różnica. Dlatego zalecamy używanie NumberFormat

+0

co to jest val? .. – Matt9Atkins

+0

Właśnie edytowałem, aby zobaczyć, co to jest val :) – Raykud

0
Double result = number1/number2;//number1 and number2 are double 
textView1.setText(""+result); 

pomocą Powyższe dwie linie do ustawiania wartości TextView

0

najprostszy sposób text.setText(a+"")

Powiązane problemy