Preciso converter BigDecimal para inteiro. Porém, o arredondamento deve ser sempre para mais.
Ex: 1,1 será convertido para 2.
O que eu devo fazer? Tem algum método que já faça isso?
Utilize Math.ceil(variável);
:)falow
Meu número é um BigDecimal. Sabe se já tem algo específico para essa classe? Ou eu terei que transformar o BigDecimal em double e usar esse método?
Experimenta
BigInteger big1 = new BigInteger(“1234567890123456890”);
double big2=big1.doubleValue();
System.out.println(Math.ceil(big2));
Alguém sabe usar os recursos de arredondamento da classe BigDecimal? Alguém sabe usar MathContext ?
Eu tentei isso:
MathContext mc = new MathContext(0,RoundingMode.CEILING);
myBigDecimal = myBigDecimal.round(mc);
Mas o primeiro parâmetro é a precisão. E eu não sei o que colocar ai. Alguém tem idéia do que significa a precisão?
[quote]Experimenta
BigInteger big1 = new BigInteger(“1234567890123456890”);
double big2=big1.doubleValue();
System.out.println(Math.ceil(big2));[/quote]
Luiz, a resposta foi 1.23456789012345677E18.
Não entendi muito bem. Estranho heim. No meu entendimento, teria que ficar no mesmo, já que não colocou casa decimal.
Oi, consegui resolver.
Basta fazer:
aBigDecimal.setScale(0,RoundingMode.CEILING).intValue();