Экспоненциальные значения против двойного (большое десятичное преобразование уже используется)
Я использую следующую функцию для форматирования двойного значения в x.xx, но после этого значение результата стало заканчиваться экспоненциальным значением (я уже прочитал ответы, которые советуют использовать методы DecimalFormat или plain text (), но каждый раз, когда система выдает ошибку, чтобы изменить типы... возвращаемые типы, я немного потерян
Может кто-нибудь, пожалуйста, помогите мне в следующем методе настройки, чтобы возвращаемые значения могли отображаться как обычное число вместо 3.343E32
Обратите внимание, что следующая функция FD используется в коде много раз, поэтому я хочу изменить ее только здесь, чтобы мне не приходилось применять форматирование каждого результата / переменной.
public double fd(double x) {
BigDecimal bd_tax = new BigDecimal(x);
BigDecimal formated = bd_tax.setScale(2, BigDecimal.ROUND_UP);
x = Double.valueOf(formated.doubleValue());
return x;
}
1 ответ
Вы говорите "... чтобы отформатировать двойное значение...", но в вашем примере нет кода, который бы что-либо форматировал. Ваша функция fd(x) принимает аргумент double и возвращает double. Больше ничего не делает.
Если ваши числа действительно находятся в районе 3.343E32, то у них будет много цифр: 33 цифры перед десятичной точкой. Это то, что вы ожидали?
Предлагаем вам взглянуть на String.format(), если вы пытаетесь превратить двойное значение в читаемый человеком текст. Что-то вроде этого, возможно:
public String fd(double x) {
return String.format("%.2f", x);
}