View Single Post
Old 13-03-2007, 15:04   #1
spv42
Member
 
Iscritto dal: Sep 2005
Messaggi: 274
[Java] Funzione Matematica

Salve,

Ho una Classe, che utilizzo per calcolare un prezzo scontato,

al costruttore gli passo 2 STringhe, rigorosamente numeriche, cioè controllo
a priori che i caratteri siano solo numeri.
Voglio che il risultato sia approssimato alla seconda cifra decimale.

Ho fatto questo:
Codice:
public CalcolaPrezzo(String prezzolistino, String scontodapplicare) {
		if (scontodapplicare.equals(""))
			scontodapplicare = "0";
		double prezzo = 0, sconto = 0, decimale = 0;
		prezzo = new Double(prezzolistino).doubleValue();
		sconto = new Double(scontodapplicare).doubleValue();
		double ris = prezzo - (prezzo / 100) * sconto;
		decimale = new Double(Math.round(100*(ris - new Double(ris).intValue()))).doubleValue() / 100;
		risultato =  String.valueOf(new Double(ris).shortValue() + decimale);
	}
se passo i valori prezzolistino=2.16 e scontodaapplicare=15.0 ho un comportamento
strano
decimale=0.84 new Double(ris).shortValue()=1 ma la loro somma è 1.8399999999999999

Qualcuno sà dirmi come avere 1.84 come risultato?


Grazie.
spv42 è offline   Rispondi citando il messaggio o parte di esso