2011-11-09 25 views
68

Quizás esta es una pregunta tonta, pero no puedo adivinar cómo resolverla si no está creando un método. Tal vez hay una "manera natural" de hacerlo, como en C, por ejemplo. Aquí está el problema:¿Cómo imprimir un doble con dos decimales en Android?

Tengo un var:

double a; 

Y quiero mostrar que sólo con 2 o 3 decimales. Cuando trato de demostrarlo:

Text.setText("Value of a: " + String.valueOf(a)); 

Da algo como:

valor de un: 5,234966145

Y me quiera solo

valor de una : 5,23

Sin cambiar el valor real de a, por lo que muestra el número aproximado pero funciona con el número real.

+0

doubleNumber.toString(). subcadena (0, 3) – Madi

Respuesta

155
Text.setText(String.format("Value of a: %.2f", a)); 
8

uso éste:

DecimalFormat form = new DecimalFormat("0.00"); 
etToll.setText(form.format(tvTotalAmount)); 

Nota: Los datos deben estar en formato decimal (tvTotalAmount)

4
textView2.setText(String.format("%.2f", result)); 

y

DecimalFormat form = new DecimalFormat("0.00"); 
     textView2.setText(form.format(result)); 

... causa del error "NumberFormatException" en la configuración regional para Europa, ya que establece resultado que coma en lugar del punto decimal - error se produce cuando se añade a Textview número en EDITTEXT. Ambas soluciones funcionan de manera excelente en EE. UU. Y el Reino Unido.

19

Antes de utilizar DecimalFormat es necesario utilizar la siguiente importación o su código no funcionará:

import java.text.DecimalFormat; 

El código para el formato es:

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case 
txtTextField.setText(precision.format(dblVariable)); 
+0

Su código de muestra valores redondeados. Por ejemplo, muestra 2.82 llamando a precision.format (2.81666666) ... – anivaler

12

Para Viendo dígitos hasta dos decimales existe Hay dos posibilidades: 1) En primer lugar, solo desea mostrar dígitos decimales si está allí. Por ejemplo - i) 12.10 que se mostrará como 12.1, ii) 12,00 que se mostrará como 12. Entonces uso-

DecimalFormat formater = new DecimalFormat("#.##"); 

2) En segundo lugar, que desea visualizar dígitos decimales independientemente de presente decimal Por ejemplo -i) 12.10 para que se muestre como 12.10. ii) 12 que se mostrará como 12.00.Then uso-

DecimalFormat formater = new DecimalFormat("#.00"); 
+1

Esto formateará "0" como ".00". En su lugar use 'nuevo DecimalFormat (" 0.00 ")' para mostrar "0" como "0.00" – PrashanD

Cuestiones relacionadas