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!
Integer i = Integer.valueOf(variavelBigDecimal.toString());[/quote]
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.
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()));
}