2011-11-09 14 views
68

Forse questa è una domanda stupida, ma non posso indovinare come risolverlo se non sta creando un metodo. Forse c'è un "modo naturale" per farlo, come in C per esempio. Ecco il problema:Come stampare una doppia con due decimali in Android?

Ho un var:

double a; 

E voglio mostrare solo con 2 o 3 decimali. Quando cerco di mostrarlo:

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

Dà qualcosa di simile:

valore di un: 5,234966145

e vorrei solo

valore di un : 5.23

Senza modificare il valore reale di a in modo che mostri il numero approssimativo ma funzioni con il numero reale.

+0

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

risposta

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

uso questo:

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

Nota: I dati devono essere in formato decimale (tvTotalAmount)

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

e

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

... causa dell'errore "NumberFormatException" in locale per l'Europa perché pone risultato come virgola invece di punto decimale - errore si verifica quando si aggiunge textView al numero in EditText. Entrambe le soluzioni funzionano in modo eccellente in USA e Regno Unito.

19

Prima di utilizzare DecimalFormat è necessario utilizzare la seguente importazione o il codice non funziona:

import java.text.DecimalFormat; 

Il codice per la formattazione è:

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

Il codice mostra valori arrotondati. Ad esempio, mostra 2.82 chiamando precision.format (2.81666666) ... – anivaler

12

per la visualizzazione di cifre fino a due cifre decimali lì sono due possibilità - 1) In primo luogo, si desidera solo visualizzare le cifre decimali, se è lì. Per esempio - i) 12.10 da visualizzare come 12.1, ii) 12.00 da visualizzare come 12. Poi uso-

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

2) In secondo luogo, si desidera visualizzare le cifre decimali a prescindere dalla presente decimali, ad esempio -i) 12.10 da visualizzare come 12.10. ii) 12 per essere visualizzata come 12.00.Then usare-

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

Questo formatterà "0" come ".00". Usa invece 'new DecimalFormat (" 0.00 ")' per visualizzare "0" come "0.00" – PrashanD

Problemi correlati