dispiace, ma nessuna delle risposte precedenti Double.parseDouble()
e Double.valueOf()
... risolto il mio problema, e ho continuato a ottenere il valore esponenziale 'E' ...
This collegamento ha un approccio molto meglio per il problema , e come ho scritto lì - c'è una soluzione molto buona:
Avevo bisogno di convertire alcuni valori double in valori di valuta, e la maggior parte della soluzione è OK ma non per me.
Il DecimalFormat
finalmente è stato il modo per me, ecco quello che ho fatto:
public String foo(double value) //Got here 6.743240136E7 or something..
{
DecimalFormat formatter;
if(value - (int)value > 0.0)
formatter = new DecimalFormat("0.00"); //Here you can also deal with rounding if you wish..
else
formatter = new DecimalFormat("0");
return formatter.format(value);
}
Come si può vedere, se il numero è naturale ottengo - diciamo - 20000000 invece di 2E7 (ecc) - senza alcun punto decimale.
e se è decimale, ottengo solo 2 cifre decimali.
Spero che questo possa essere d'aiuto.
Ci dovrebbe mostrare il numero che avete in excel e il risultato in Java. – looper
'9.78313E + 2' =' 978.313' Confondi il valore con il formato. 'double' non conserva il formato solo il valore. –