2012-04-03 13 views
11

En Android, estoy configurando el texto de una vista de texto para que sea la respuesta a un cálculo que es un tipo de datos double.Cómo pasar el doble valor a una vista de texto en Android

Cuando el valor doble tiene un valor de 5, la vista de texto recibe la cadena: 5.0.

Código:

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

¿Cómo dar formato al texto Textview para que muestre el valor doble en un formato coherente?

+0

cadena finalresult = resultado + ""; o String finalresult = Double.toString (resultado); –

Respuesta

28

En Android, asignar un doble con una TextView:

Uso Double.toString:

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

o puede utilizar el NumberFormat:

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

Forzar para 3 unidades de precisión:

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

Eso lo hace con 3 decimales, creo. Si quisiera hacer 0.00001 * 2, me dará 0 – Matt9Atkins

+0

Creo que Double.toString debería darle la respuesta en la cadena si su resultado será 0.0000000000000000001 y también le dará la misma. –

+0

Todavía quiero formatear la respuesta, pero no se limita a 3 lugares decimales – Matt9Atkins

0

La mejor manera es

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

probar este

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

se podría utilizar NumberFormat y entonces usted puede hacer su código 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); 

y allí se puede establecer el máximo o alternativamente puede convertir a un número entero.

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

la diferencia entre ellos es que el puño de uno va a redondear el número al entero más cercano y será una aproximación más precisa, mientras que echa a un entero dará lugar a que los casos en que se puso el resultado beeing 3.9 como 3 y esa es una gran diferencia. Por lo tanto, recomiendo el uso de la NumberFormat

+0

¿Cuál es val? .. – Matt9Atkins

+0

Acabo de editar para que veas cuál es el val :) – Raykud

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

Use las anteriores dos líneas para establecer valor a Textview

0

manera más fácil text.setText(a+"")

Cuestiones relacionadas