Скорее всего, вы пытаетесь напечатать float / double, используя System.out.println (...).
Это в конечном итоге вызывает public static String toString()
метод Float (или Double). В любом случае, если вы читаете Javadoc, в нем говорится:
Если m меньше 10-3 или больше или равно 107, то это
представлены в так называемой «компьютеризированной научной нотации». Пусть п будет
единственное целое число такое, что 10n <= m <10n + 1; тогда пусть будет
математически точное отношение m и 10n, так что 1 <= a <10.
Величина затем представляется как целая часть, как один
десятичная цифра, за которой следует «.» ('\ u002E'), за которыми следуют десятичные цифры
представляет дробную часть а, за которой следует буква «Е»
('\ u0045'), за которым следует представление n в виде десятичного целого числа, как
производится методом Integer.toString (int). </p>
Вы можете обойти это, используя System.out.printf()
, например:
double d = 0.000408;
System.out.println(d);
System.out.printf("%f", d);
Это печатает:
4.08E-4
0,000408
Мои 2 цента.