1
resposta

Como posso formatar as avaliações por temporada com duas casas decimais ?

Gostaria de deixar as avaliações das temporadas com duas casas depois da virgula. Existe algum metodo que faça isso dentro do Collectors?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi Gabriel, tudo bem?

Dentro do método Collectors.averagingDouble, não há um recurso diretamente incorporado para especificar a formatação numérica desejada, como a limitação de casas decimais após a vírgula. Entretanto, você pode formatar os valores após a coleta.

Aqui está um exemplo de como você pode fazer isso:

Map<Integer, Double> avaliacaoTemporada = episodios.stream()
                .filter(e -> e.getAvaliacao() > 0.0)
                .collect(Collectors.groupingBy(
                        Episodio::getTemporada,
                        Collectors.averagingDouble(Episodio::getAvaliacao)
                ));

// Formatação dos valores com duas casas decimais após a vírgula
DecimalFormat df = new DecimalFormat("#.##");
avaliacaoTemporada.forEach((temporada, mediaAvaliacao) -> {
        String valorFormatado = df.format(mediaAvaliacao);
        System.out.println("Temporada: " + temporada + ", Avaliação Média: " + valorFormatado);
});

Neste exemplo, após coletar a média de avaliação para cada temporada, utiliza-se a classe DecimalFormat para formatar os valores com duas casas decimais após a vírgula. Em seguida, os valores formatados são impressos ou podem ser manipulados conforme a necessidade do seu programa.