Arredondamento e BigDecimal: trabalhando com números grandes
3 minutos de leitura

É fácil se deparar com as limitações do double no Java e na maioria das outras linguagens: quando vamos trabalhar com dinheiro notamos que as contas não estão saindo exatamente como esperávamos:
double d1 = 0.1; double d2 = 0.2; System.out.println(d1 + d2);
O resultado é um estranho 0.30000000000000004, que pode acarretar em problemas graves dependendo da utilização e arrendondamento aplicado depois nesse número. O problema é que um número com 0.1 não pode ser representado em binário de maneira finita: ele vira uma dízima (no binário ficaria algo como 0.110011001100...) diferente do número , que pode ser representado perfeitamente (no binário ). A representação é um pouco mais complicada que isso, para trabalhar com números de ponto flutuante.
Autor(a)
peas
Inscreva-se em nossa Newsletter
Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.



