Этот ответ сэкономит время для 40k + людей, которые ищут в Google "Java Scientific Notation".
Что означает Y в %X.YE
?
Число между .
и E
- это число десятичных знаков (НЕ значащих цифр).
System.out.println(String.format("%.3E",223.45654543434));
// "2.235E+02"
// rounded to 3 decimal places, 4 total significant figures
Метод String.format
требует, чтобы вы указали количество десятичных цифр для округления. Если вам нужно сохранить точное значение исходного числа, вам понадобится другое решение.
Что означает Х в %X.YE
?
Число от %
до .
является минимальным количеством символов , которое строка будет принимать. (это число не обязательно, как показано выше, строка будет автоматически заполняться, если вы оставь это)
System.out.println(String.format("%3.3E",223.45654543434));
// "2.235E+02" <---- 9 total characters
System.out.println(String.format("%9.3E",223.45654543434));
// "2.235E+02" <---- 9 total characters
System.out.println(String.format("%12.3E",223.45654543434));
// " 2.235E+02" <---- 12 total characters, 3 spaces
System.out.println(String.format("%12.8E",223.45654543434));
// "2.23456545E+02" <---- 14 total characters
System.out.println(String.format("%16.8E",223.45654543434));
// " 2.23456545E+02" <---- 16 total characters, 2 spaces