Как сделать правильный формат вывода?
Задание: Реализовать функцию вывода линейного массива чисел с плавающей запятой с ограничением до 2х знаков после запятой. Обработать ситуацию с пустым массивом. Формат вывода: (3.14, 2.72, 6.72, -2.34, 1.20, 1235.00).
Я уже обрезал число до 2-х знаков после запятой, но никак не могу понять, как сделать, чтобы скобки были только в начале и в конце (сейчас же получается вот так: (2.43, )(2.45, )(4.21, )(6.32, )(35.32, )(24.21, )), и, чтобы после последнего числа не было запятой
P.S код
double[] arr = {2.4264, 2.4543, 4.2125, 6.32315, 35.32125, 24.21234};
if (arr.length != 0) {
double b = 0;
DecimalFormat formattedDouble;
for (int i = 0; i < arr.length; i++) {
b = arr[i];
formattedDouble = new DecimalFormat("#0.00");
for (Double n : Arrays.asList(b)) {
Double d = n.doubleValue();
String str = "(" + formattedDouble.format(b) + ", " + ")"; //я понимаю, что это скорее всего не правильно, но я хотел от этой части как-то отталкиваться и форматировать
}
}
} else System.out.println("( )");
Ответы (1 шт):
Автор решения: entithat
→ Ссылка
Можно сделать так:
double[] arr = { 3.14, 2.72, 6.72, -2.34, 1.2, 1235 };
System.out.print("(");
for ( int i = 0; i < arr.length; i++ ) {
System.out.printf("%.2f", arr[i]);
if ( i != arr.length - 1 ) {
System.out.print(", ");
}
}
System.out.print(")");
Либо как-то так:
System.out.println(
Arrays.toString(Arrays.stream(arr).mapToObj(e -> String.format("%.2f", e)).toArray())
.replace('[', '(')
.replace(']', ')')
);