написание строки из массива double[] array

199
04 августа 2021, 18:30

Имеется массив дробных чисел. {100.35, 200.46, 300.1, 400.89} требуется написать метод, который преобразует массив в строку, который перечисляет все элементы массива через запятую. При этом необходимо, чтобы форматирование было с двумя знаками после запятой. Написал код следующего характера. Просьба сильно не смеяться, т.к. я только начал учить джаву.

StringBuffer stringBuffer = new StringBuffer("");
DecimalFormat df = new DecimalFormat("###.##");
if (array.length != 0) {
    for (int i = 0; i < array.length; i++) {
        stringBuffer.append(df.format(array[i]) + ",");
    }
    stringBuffer.deleteCharAt(stringBuffer.lastIndexOf(","));
}
return stringBuffer.toString();

но вот вместо "100.35, 200.46, 300.10, 400.89" - мне выдается строка: "100.35, 200.46, 300.1, 400.89".

Answer 1
public class Test {
    private final static DecimalFormat FORMATER = new DecimalFormat("#.00");
    public static void main(String[] args) {
        Double [] array = {100.35, 200.46, 300.1, 400.89}; 
        System.out.println(arrayToString(array));
    }
    private static String arrayToString(final Double[] array) {        
        return Arrays.stream(array)
                .map(d -> FORMATER.format(d))
                .collect(Collectors.joining(", "));
    }
}
Answer 2

Используйте 0 (показывает начальные/конечные нули) вместо # (скрывает их) в форматной маске.

double d = 100.10;
String fMask = "###.##";
DecimalFormat df = new DecimalFormat(fMask);
System.out.println(d + "(" + fMask + "): " + df.format(d));
fMask = "###.00";
df = new DecimalFormat(fMask);
System.out.println(d + "(" + fMask + "): " + df.format(d));
d = 0.10;
System.out.println(d + "(" + fMask + "): " + df.format(d));
fMask = "##0.00";
df = new DecimalFormat(fMask);
System.out.println(d + "(" + fMask + "): " + df.format(d));
READ ALSO
Не могу сделать приложение JavaFX

Не могу сделать приложение JavaFX

Сделал приложение на JavaFX решил "скомпоновать" в приложениеРаботаю в Intellij IDEA лицензия, когда хочу создать модуль в Artifacts JavaFX Applicaton, при выборе...

154
Java. Нужна критика.. Оцените код

Java. Нужна критика.. Оцените код

Изучаю Java 3-4 месяца, дошел до многопоточностиРешил написать свою простую программу из того, что знаю

472
Как сделать так, чтобы функция возвращала 2 и более значений?

Как сделать так, чтобы функция возвращала 2 и более значений?

У меня есть функция, которая должна возвращать сразу 4 значенияКак сделать так, чтоб это стало возможным?

162