Avatar ·

Como arredondar um número para N casas decimais em Java?

Olá a todos! Sou novo em Java e encontrei um problema ao trabalhar com números decimais. Preciso que, após operações matemáticas, o número seja exibido com uma quantidade específica de casas decimais. Por exemplo, calculo a média aritmética e quero mostrar o resultado com duas casas: 5.67, em vez de 5.6748912. Tentei usar `System.out.printf("%.2f", number)`, mas isso é apenas para exibição. Preciso que o próprio número seja armazenado arredondado para cálculos futuros. Tentei fazer assim: ```java double value = 5.6748912; double rounded = Math.round(value * 100) / 100; System.out.println(rounded); // Exibe 5.0, em vez de 5.67! ``` Por que isso acontece? Aparentemente, multipliquei por 100, arredondei, dividi — deveria funcionar. Obviamente, estou perdendo algo. Também ouvi falar sobre `BigDecimal`, mas não entendo como usá-lo corretamente. Por favor, indiquem uma maneira confiável que funcione para qualquer número (positivo e negativo) e não perca precisão. Desde já, obrigado! <<>>

Por que