Operadores+BigDecimal[[RESOLVIDO]]

Galera estou com uma duvida !!

por exemplo E tenho um for

e nesse for o meu parametro de comparação é um tipo Big decimal ! .

Com um int vc simplesmente faz algo do tipo


for(int i=0;i<10;i++){
System.out.println("Olaa");
}

Mas quando faço com um tipo Big decimal ele da uma msgem falando que Bog decimal nao aceita o operador >= > < e nem o incremento ++

Gostaria de saber ja que nao posso usar esses operadores , o que eu tenho que usar é outro tipo de operador??

como funciona.

Obrigado !

Olá juliocesarsrosa,

Talvez esse tópico te ajude a entender como funciona o BigDecimal -> http://www.guj.com.br/java/57272-operacoes-com-a-classe-bigdecimalresolvido

vc pode usar o método compareTo() do BigDecimal.
Ele retorna um numero inteiro sendo 0 para igual, -1 para menor, 1 para maior… se não me engano…

ée realmente nao exclareceu muita coisa …

dei uma olhadinha por ai e estou usando o compareTo(), porem ainda nao sei como usar um incremento em um For
para um tipo big decimal pois ele nao aceita o operador++.

Infelizmente, você não pode utilizar o ++ em um BigDecimal -> http://pt.wikibooks.org/wiki/Java/Operadores

Talvez eu esteja falando besteira, mas acredito que só dá pra fazer isso em inteiros. Tente somar +1* ao invés de utilizar o ++ . Pense no BigDecimal como um Objeto, e não um número.

*algo como variável = variável.add(1)
ou ao invés do 1 tente atribuir esse valor a outra variável e tente adicionar.

Sim amigo creio que o que vc falou tem razao antes de vc falar eu estava tentando algo como b+(BigDecimal.One) e funcionou !! agora estou com uns problemas porem as duvidas quando a isso ja foram cessadas obrigado !

Vlww

Não sei porque você está usando o BigDecimal mas para acumular valores você pode fazer assim:

BigDecimal bd = new BigDecimal(0); for (int i = 0; i < 10; i++) { bd = bd.add(new BigDecimal(i)); } System.out.println("Novo valor: "+bd.doubleValue());

Seria algo como:

for(BigDecimal i = BigDecimal.ZERO; i.compareTo(10) < 0; i = i.add(1)) {

}

[quote=PauloBrito]Seria algo como:

for(BigDecimal i = BigDecimal.ZERO; i.compareTo(10) < 0; i = i.add(1)) {

}

[/quote]
Não acho a melhor maneira. Assim você instancia um Objeto pesado (o BigDecimal é pesado sim!) pra fazer a mesma coisa que um [color=violet]int[/color] faria.

Para números inteiros realmente é um desperdício. Mas talvez esta não seja a intenção do Julio, já que ele queria um BigDecimal mesmo.

É Galera Um amigo aqui deu uma forcinha , realmente eu precisa de Um big Decimal até pq dentro do for eu teinha que somar dois valores do tipo Big decimal até que a condição fosse satisfeita… porem um amigo me mostrou de outro geito nem precisei usar esse for !!!

Mas Agradeço muito a Ajuda de Vcs !!!

Mtu obrigado Galera !!!

Abraços e Fiquem com Deus.