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?
Arredondar BigDecimal para próximo inteiro [resolvido]
R
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
ExperimentaBigInteger 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, já 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