3
respostas

Tipo de dados do retorno dos agregadores

Alguém consegue explicar por que a soma e a média retornam tipos BigDecimal e Double, respectivamente? O mais lógico seria a média retornar um BigDecimal, já que é proveniente de uma divisão, e a soma retornar um Double (já que dificilmente necessita ser muito preciso). Imagino que não seja apenas uma convenção da linguagem, mas vale a discussão.

3 respostas

O BigDecimal é uma maneira exata de representar números. O Double tem uma certa precisão, mas não 100%.

BigDecimal é mais usado em valores monetários, então o sum faz mais sentido retornar um BigDecimal

Pois é, isso eu entendo. Porém, o mais lógico não seria a média ser de um tipo de maior precisão, comparado a uma soma? Já que a média é derivada de uma divisão, logo, é muito mais conveniente este necessitar de uma precisão maior.

Se você precisa de uma precisão na casa dos 0.001, então talvez faça sentido usar BigDecimal, caso contrário pode usar Double.