Niestety, ale żadna z powyższych odpowiedzi Double.parseDouble()
i Double.valueOf()
... rozwiązać mój problem, a ja nadal uzyskać wykładniczy wartości „e” ...
This związek ma znacznie lepsze podejście do problemu , i jak już tam napisałem - istnieje bardzo dobre rozwiązanie:
Potrzebowałem przekonwertować niektóre podwójne do wartości walutowych i fount, że większość do rozwiązania są OK, ale nie dla mnie.
DecimalFormat
był ostatecznie droga dla mnie, więc o to, co zrobiłem:
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);
}
Jak widać, jeśli liczba jest naturalna otrzymuję - powiedzmy - 20000000 zamiast 2E7 (etc) - bez kropki dziesiętnej.
a jeśli jest dziesiętny, otrzymuję tylko 2 cyfry dziesiętne.
Mam nadzieję, że to pomoże.
powinien pokazać nam numer masz w Excel i wynik w Javie. – looper
'9.78313E + 2' =' 978.313' Czy wprowadzasz mylące wartości do formatu. 'double' nie zachowuje formatu tylko wartość. –