java #formatting
#java #форматирование
Вопрос:
Мне нужно преобразовать некоторые значения с плавающей запятой в формат, подобный этому: 2,5000E-003
, 2,8625E 000
Я знаю, что могу сделать это так:
String.format("%s,%sE%s", digitInt, digitAfterDot, digitDegree)
Но я надеюсь, что кто-нибудь знает более умное и аккуратное решение
Ответ №1:
Вы можете использовать:
String.format("%1.4e",12345.67890123)
Результатом этого является:
1,2346e 04
Вот некоторая документация
Редактировать
Если вам нужно 3 цифры в экспоненте, вы можете использовать DecimalFormat
форматировщик:
DecimalFormat format = new DecimalFormat("0.0000E000");
System.out.print(format.format(12345.67890123f));
Какие результаты:
1,2346E004
Обратите внимание, что он не имеет положительного знака, если показатель положителен.
Вы можете исправить это с помощью:
DecimalFormat format = new DecimalFormat("0.0000E000");
String result = format.format(12345.67890123f);
if (!result.contains("E-")) {
result = result.replace("E", "E ");
}
Комментарии:
1. @Flav Большое спасибо, но в моей ситуации важно иметь три цифры после «e», даже если они равны нулю
2. @SergeyYuryev Я только что отредактировал свой ответ другим решением