Этот ответ позволит сэкономить время для 40k + людей, которые используют «научную нотацию java».
Что означает 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 в %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