spv42
13-03-2007, 14:04
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:
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?
:muro:
Grazie.
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:
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?
:muro:
Grazie.