Newsgroup: it.comp.java
Titolo: Separatore Decimale

Salve a Tutti,
sono un neo programmatore Java e, come prima applicazione ho creato un
applet "euro convertitore"
Ho un grosso problema con il separatore decimale, infatti la TextArea in cui
è inserito il risultato della conversione non mi riconosce il . come
decimale ma,penso, lo considera una Stringa e quindi non mi dà il risultato
della conversione con numeri decimali ma posso solamente farla con gli
interi
Ho già provato ad utilizzare il metodo DecimalFormat ma il compilatore
segnala errore
Qualcuno sà aiutarmi ??
            Grazie
                        Simone.
(x risposta privata eliminare nospam_ da e-mail)

Strano che ti dia errore con il DecimalFormat.
Che errore ti da?
Cmq. DecimalFormat, va settato anche mediante la Località (Locale), perchè
riconosce sia i simboli, che le punteggiature dei decimali e delle monete.
Ad esempio se lo setti su "USA", hai come simbolo moneta il "$", come
separatore di decimali il "." e come separatore di migliaia la ",".
Settandolo con Itali, inverti i punticon le virgole.
Se proprio ti rimane antipatico, una cosa che puoi fare senza troppi
problemi è leggere la stringa dal campo testo, trimmarla, fare un
replaceChar('.', ','); e poi usare BigDecimal per gestrire i valori in
virgola.

 ha scritto nel messaggio
news:an8u7v$4lfu$1...@stargate1.inet.it...


Il tutto è molto più semplice di quanto non pensi.
Se non ami DecimalFormat, puoi farti una cosetta molto + casereccia ma che
funziona alla grande.
Solo un piccola premessa. E' importante che usi fin da subito per i calcoli
in virgola, la classe BigDecimal.
Diciamo che a te occorre una cosa tipo :
// Variabili globali
// Nota che passo a BigDecimal una stringa.
// Questo perchè ho visto che se gli si passa un valore,
// questa classe introduce un piccolo errore (prova)
BigDecimal eurValue = new BigDecimal("1936.27");
public int convertiInLire(String value){
    value = value.raplace(',' , '.'); // Sostituisce la virgola con il punto
    BigDecimal lire = new BigDecimal(value);
    lire = lire.multiply(eurValue);
    return lire.intValue();
}
public double convertiInEuro(String value){
    value = value.raplace(',' , '.'); // Sostituisce la virgola con il punto
    BigDecimal euro = new BigDecimal(value);
    // Esegui la divisione.
    // I parametri indicano rispettivamente :
    //     -   divisore
    //     -   numero di cifre decimali
    //     -   modalità di arrotondamento
    euro = euro.divide(eurValue,
                                 7,
                                 BigDecimal.ROUND_HALP_PAST);
    return euro.doubleValue();
}
Se ancora ti scattano fuori delle eccezioni, significa che c'è qualche cosa
che non va nel recupero dei valori dai campi editabili. Se li visualizzi
formattati in una certa maniera, va da se che li devi prima ripulire,
altrimenti scattano le eccezioni.
Ciao

Ciao a Tutti, chi mi può aiutare ???
Ho creato un euro convertitore che non vuole calcolarmi i numeri decimali --
mi spiego meglio..
Ho 3 metodi:
-Un metodo mi converte il valore nella mia Text Area da Stringa a doppio,
effettua la moltiplicazione per il calcolo in Lire, mi riconverte il valore
in stringa e me lo stampa nella Text area
- Il secondo metodo fà lo stesso, da una stringa, conversione in doppio,
calcolo in Euro, riconversione in Stringa e stampa
- Il 3° metodo "dovrebbe" gestire i valori decimali,cioè faccio in modo che
quando clicco sul bottone " . " del mio euroconvertitore sulla Text area
appaia il  simbolo . e Java "dovrebbe" vedere quel . come separatore
decimale.
La cosa strana è che durante la conversione Lira/euro (o viceversa) nella
TextArea compare il simbolo di separazione decimale . ma quando clicco sul
pulsante Euro(o Lire), non mi effettua  + la conversione, nella console Java
segnala un' eccezione.Ho già provato a gestire la Text area con solo numeri
interi e la conversione (Lira/euro) e riconversione(euro/lira) funziona
senza problemi, solamente con i decimali scatta l'eccezione
Potrei provare con Decimal Format, ma non ho idea di dove vada inserito nel
codice (nel metodo gestione del decimale o metodi x calcolo lira/euro) ??
Ho anche provato BigDecimal ma al compilatore non gli piace....
Grazie Simone