Arredondar BigDecimal para próximo inteiro [resolvido]

7 respostas
R

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?

7 Respostas

L

Utilize Math.ceil(variável);
:)falow

R

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?

L

Experimenta

BigInteger big1 = new BigInteger(1234567890123456890);

double big2=big1.doubleValue();

System.out.println(Math.ceil(big2));
R

Alguém sabe usar os recursos de arredondamento da classe BigDecimal? Alguém sabe usar MathContext ?

R

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?

R

Experimenta

BigInteger big1 = new BigInteger(1234567890123456890);

double big2=big1.doubleValue();

System.out.println(Math.ceil(big2));</blockquote>

Luiz, a resposta foi 1.23456789012345677E18.

Não entendi muito bem. Estranho heim. No meu entendimento, teria que ficar no mesmo,  que não colocou casa decimal.
R

Oi, consegui resolver.
Basta fazer:
aBigDecimal.setScale(0,RoundingMode.CEILING).intValue();

Criado 1 de agosto de 2005
Ultima resposta 2 de ago. de 2005
Respostas 7
Participantes 2