@Eduardo, ambas as respostas estão bastante corretas.
Sim, vale mais a pena utilizar variáveis de ponto flutuante para armazenar uma média, mas claro que isso depende do seu modelo de negócios. Pode ser do seu interesse fazer o arredondamento, e armazenando em um inteiro isso ocorre automaticamente.
No caso de manipulação de valores monetários, é mais interessante utilizar a classe mencionada, o BigDecimal
, pois tanto o double
quanto o float
têm alguns problemas de arredondamento com certos números.
Um exemplo: quanto você diria que é 0.1 * 0.1
? O resultado esperado seria 0.01
, certo? Porém, ao fazer essa multiplicação, você vê um resultado estranho (comando rodado em python):
>>> 0.1 * 0.1
0.010000000000000002
Parece pouco, mas quando isso se repete em milhares ou milhões de transações, a soma pode ser prejudicial ao seu livro de contas!
E mais, se você tentar comparar o resultado dessa multiplicação com um valor constante, vai ter uma surpresa!
>>> (0.1 * 0.1) == 0.01
False
Portanto, cuidado ao usar double
e float
, lembrando-se sempre desses problemas.
É isso aí! Lembre-se de marcar a resposta que te ajudou como solução para ajudar os próximos que tiverem uma dúvida semelhante! E bons estudos!