Autore Topic: Number Format  (Letto 388 volte)

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Number Format
« il: 27 Agosto 2013, 18:23:49 CEST »
0
Ciao a tutti, sono un super pivello della programmazione Android, vi espongo il mio problema(che solo per me), ho questa classe nella quale definisco i dati di 3 textview che mostrano i risultati di una query in una listview....
Ora pero devo fare in modo che i numeri dopo la virgola siano 2 e che ci sia anche il separatore delle migliia, ho visto Number Format ma non sono riuscito ad adattarlo.....qualcuno mi aiuta???Grazie
Codice (Java): [Seleziona]
private class Dettaglio {
               
                float a;
                float b;
                float c;
               
        }

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Number Format
« Risposta #1 il: 27 Agosto 2013, 18:58:23 CEST »
0
Ok, è una domanda di Java più che su Android.

Prova questi modi, magari sistemando qualcosa.


Codice (Java): [Seleziona]
DecimalFormat mioformato = new DecimalFormat("#.00");
DecimalFormatSymbols symbols = mioformato.getDecimalFormatSymbols();
symbols.setGroupingSeparator(',');

float numero = 1234567.89;
String risultato = mioformato .format(numero);

Oppure

Codice (Java): [Seleziona]
float numero = 1234567.89;
String.format("%,14.2f",numero);
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Re:Number Format
« Risposta #2 il: 27 Agosto 2013, 19:09:47 CEST »
0
questi eclipse li segna rosso:
Codice (Java): [Seleziona]
symbols.setGroupingSeparator(',');

                float numero = 1234567.89;
                String.format("%,14.2f",numero);

cioè come dovrei sostituire i miei campi??

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Number Format
« Risposta #3 il: 27 Agosto 2013, 19:23:14 CEST »
0
Il codice che ho postato prima non era da copia-e-incollare direttamente nel tuo progetto, anche perchè non so come è fatto. Era solamente una bozza da adattare al tuo caso.

Prova postare un po' più di codice.

E leggiti un po' di spiegazioni sulle classi coinvolte:
Formatting Numeric Print Output (The Java™ Tutorials >       
            Learning the Java Language > Numbers and Strings)
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Kris

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
Re:Number Format
« Risposta #4 il: 27 Agosto 2013, 19:43:06 CEST »
0
Mi spiego meglio, in queste textview ci sono dei valori prelevati dal db (sono valori numerici di valuta). Ora a volte capita che alcuni risultati sono formati da 3/4 numeri dopo la virgola e invece dovrebbero essere 1/2.

es.100.0
es.100.10

a volte invece ho risultati tipo questo
100.526300

scrivo del codice che utilizzo per fare dei semplici calcoli sulle textview
Codice (Java): [Seleziona]
//Calcolo il totale annuale
                Float totaleE = (float) 0;
                               
                Float totaleU = (float) 0;
                               
                Float totalerisparmio = (float) 0;     
               
               
                Float val = (float) 0;
                Float val1 = (float) 0;
               
               
               
                for (Dettaglio d : dettagli){
                        totaleE += d.entrate;
                        totaleU += d.uscite;
                       
                }
               
                TextView riepilogoE = (TextView) findViewById(R.id.tv_riepilogo_entrate);
               
               
                TextView riepilogoU = (TextView) findViewById(R.id.tv_riepilogo_uscite);
               
               
                TextView risp = (TextView) findViewById(R.id.tv_riepilogo_risparmio);
               
               
                riepilogoE.setText(""+totaleE);
                riepilogoU.setText(""+totaleU);
               
                val = Float.parseFloat(riepilogoE.getText().toString());
                val1 = Float.parseFloat(riepilogoU.getText().toString());
               
               
                totalerisparmio = val - val1;
               
                risp.setText(""+totalerisparmio);
               
        }
               

Codice (Java): [Seleziona]
private class Dettaglio {
               
               
                float entrate;
                float uscite;
                float risparmio;
               
        }