2012-04-03 14 views
11

In Android, setze ich den Text eines Textview als die Antwort auf eine Berechnung, die ein double Datentyp ist. Wenn der doppelte Wert den Wert 5 hat, erhält die Textansicht die Zeichenfolge: 5.0.Wie doppelte Wert zu einem Textview in Android übergeben

Code:

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

Wie formatiere ich den Textview-Text, so dass er den doppelten Wert in einem einheitlichen Format zeigt?

+0

String finalresult = result + "" auf Textview; oder String finalresult = Double.toString (Ergebnis); –

Antwort

28

In Android, ein Doppel zu einem Textview zuweisen:

Verwendung Double.toString:

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

oder können Sie die Number verwenden:

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

Um für 3 Einheiten Präzision zu erzwingen:

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

Das macht es zu 3 Dezimalstellen denke ich. Wenn ich 0.00001 * 2 machen wollte, wird es mir geben 0 – Matt9Atkins

+0

ich denke, Double.toString sollte Ihnen die Antwort in der Zeichenfolge geben, wenn Sie Ergebnis wird 0.0000000000000000001 dann auch wird es Ihnen die gleiche geben. –

+0

Ich möchte immer noch die Antwort formatieren, aber nicht auf 3 Dezimalstellen – Matt9Atkins

0

Der beste Weg ist

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

Try this

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

Sie NumberFormat verwenden könnte und dann können Sie Ihre normalen Code tun:

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

und dort können Sie die Set Maximum oder alternativ können Sie in eine Ganzzahl umwandeln.

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

der Unterschied zwischen ihnen ist, dass die Faust man die Zahl auf die nächste ganze Zahl abzurunden und wird eine genauere aproximation sein, während auf einen ganzzahliges Gießen werden Fälle zu haben, führen, wo das Ergebnis 3,9 beeing gestellt wird als 3 und das ist ein großer Unterschied. Daher empfehle ich die NumberFormat

+0

was ist val? .. – Matt9Atkins

+0

Ich habe gerade so bearbeitet Sie sehen, was ist das val :) – Raykud

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

Mit den oben genannten zwei Zeilen Wert einzustellen

0

einfachste Weg text.setText(a+"")

Verwandte Themen