Converter BigDecimal para Integer

5 respostas
CarlosFontana

Boa noite pessoal, estou com uma dúvida de conversão e não encontrei algo semelhante aqui no fórum. A dúvida é a seguinte, tenho uma variável “valorUnitario” que armazena valores do tipo BigDecimal, preciso transformar esse valor em inteiro:

valorUnitario = (BigDecimal) (int) valorUnitario;

…mas não sei como resolver, alguém sabe uma forma de fazer isso?
Obrigado!

5 Respostas

Suu

((BigDecimal)valorUnitario).intValue() já tentou?

CarlosFontana

Obrigado Suu!

A

Se nada der certo, faz isso:

Integer i = Integer.valueOf(variavelBigDecimal.toString());

ViniGodoy

and_wil0806:
Se nada der certo, faz isso:

Integer i = Integer.valueOf(variavelBigDecimal.toString());

Já tinha dado certo, e o problema sido resolvido há anos atrás. Não ressuscite tópicos sem um excelente motivo, especialmente se sua sugestão é ainda pior do que a que resolveu o tópico.

A

Se eu coloquei uma forma diferente é porquê houve um motivo, aqui eu estava com o seguinte problema. Uso banco oracle
e na micha aplicação já tinha um código que estava pegando uma lista de id vindas do banco, dessa forma:

EntityManager em = JPAResourceBean.getEntityManager();

String sql = "select A.isn_grupo_medicamento from MEDPOINT.T_PRESCRICAO_PEP_ITEM A  …

List lista = em.createNativeQuery(sql).getResultList();

Porém ao invés da variável lista está como uma lista de Integer estava vindo como uma lista de BigDecimal(e por isso
dava erro quando tentava utiliza-la mais na frente), quando eu tentava fazer a conversão:

List listaTeste = new ArrayList<>();

for (BigDecimal b : lista)

listaTeste.add(b.intValue()); // dava erro aqui.

}

Dava o erro: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal;

Porém quando fiz dessa forma deu certo:

List listaTeste = new ArrayList<>();

for (BigDecimal b : lista)

listaTeste .add(Integer.valueOf(b.toString()));

}
Criado 18 de abril de 2012
Ultima resposta 20 de mar. de 2014
Respostas 5
Participantes 4