Bom dia pessoal,
Estou fazendo um sistema, onde recebo alguns dados, e alguns deles são valores percentuais de impostos, por exemplo, para um imposto a taxa é 3.5%, para outro 15% e assim sucessivamente. Os campos que fiz o mapeamento da tabela, para este tipo de dados utilizei o tipo Float, pois na minha visão é o mais ideal, dos pontos flutuantes é o menor, e visto que o percentual usualmente vai até 100. Então aconteceu de eu ter que pegar uma classe Java externa, e converter objetos desta classe para a minha classe, para depois persistir, e nesta classe percebi a existência de atributos dos tipos BigInteger e BigDecimal, e em vários casos fiz a conversão abaixo, para poder adaptar o valor ao tipo de dado da minha classe, utilizando o .floatValue() da classe BigDecimal.
cenarioFiscal.setIcmsAliquota(product.getICMS().getTaxRate().floatValue());
Pelo que deduzo os tipos de dados com o prefixo Big são de uma capacidade maior, até andei pesquisando sobre, se não me engano são 32 bytes, contra 4 bytes do Float, a minha pergunta é se existe algo além do tamanho para os tipos Big, por que pelo tamanho acho que quem fez a classe não deve ter feito por conta disto, visto que não é necessário, talvez alguma diferença na precisão dele, ou alguma outra funcionalidade deste Wrapper, alguém poderia me dizer quando é indicado a utilização destes tipos, quais as vantagens e desvantagens?