Я пишу программу, чтобы получить среднее значение из двух чисел. Для тестового случая 2, 4
выход должен быть 3
не 3.0
. Для тестового случая -1282660896, -672813783
выход должен быть -977737339.5
не -9.777373395E8
.Удалить конечные нули после десятичного числа из double
Мой код выглядит так:
public static void getAve(long a, long b){
System.out.println((double)(a + b)/2);
}
Я также создал функцию форматирования, чтобы удовлетворить мои потребности, как это:
public static String fmt(double d) {
if (d == (long) d)
return String.format("%d", (long) d);
else
return String.format("%s", d);
}
Но это также не для теста 2
Вам нужен формат, который не переключается на научную нотацию. Я предлагаю вам посмотреть на других или использовать 'new DecimalFormat (« 0. # »). Format (d)' –
@PeterLawrey благодарит peter, что ваше решение сработало :) – Jaguar
Вы можете сохранить объект DecimalFormat как константу для повышения производительности. –