Problema com BigDecimal  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Veneno
JavaGuru
[Avatar]

Membro desde: 12/09/2006 11:36:42
Mensagens: 238
Offline

Olá ...
meu problema eh o seguinte...

Ex:
tenho o número 40.00 quero dividi-lo por 3
onde sub = 40.00


o resultado seria uma dízima 13,3333333333333

mas da esse erro


gostari de saber como posso resolver isso...
eu queria mostra somente 2 casas dpois do ponto...

vlw abraço..


Matheus Luis Ramos de Souza
[MSN]
dm_thiago
JavaEvangelist
[Avatar]

Membro desde: 14/02/2007 04:23:55
Mensagens: 305
Offline

Eu resolveria isso da seguinte forma:

Não usaria BigDecimal, usaria int mesmo. E quando fosse imprimir, era só você usar a classe DecimalFormat.

Acho que assim resolveria o seu problema, e até de uma forma mais correta, pois o int ficaria com todos os números possives, sendo mais correto caso você queira realizar mais alguma conta, e na hora de imprimir sairia exatamente como você quer.

[]´s
erickcellani
JavaEvangelist
[Avatar]

Membro desde: 13/05/2006 13:37:12
Mensagens: 425
Localização: São Paulo - SP
Offline

eu usaria um float...

pois assim.. vc pode fazer o seu calculo e usar o NumberFormat setando a quantidade máxima e mínima de casas decimais

--
Érick F. Cellani
[MSN]
dm_thiago
JavaEvangelist
[Avatar]

Membro desde: 14/02/2007 04:23:55
Mensagens: 305
Offline

Opa! Isso mesmo. float, não int. Mas ainda continuaria usando DecimalFormtat =P
Fabricio Cozer Martins
GUJ Ranger
[Avatar]

Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline

Veneno wrote:Olá ...
meu problema eh o seguinte...

Ex:
tenho o número 40.00 quero dividi-lo por 3
onde sub = 40.00


o resultado seria uma dízima 13,3333333333333

mas da esse erro


gostari de saber como posso resolver isso...
eu queria mostra somente 2 casas dpois do ponto...

vlw abraço..


tente usar o tipo de arredondamento ROUND_UP, assim:



Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4
[MSN] [ICQ]
Veneno
JavaGuru
[Avatar]

Membro desde: 12/09/2006 11:36:42
Mensagens: 238
Offline

ae vlw galera ...
fiz das duas formas
Com float e com BigDecimal





os 2 deram certo ...
o BigDecimal arredondou pra 13,34 e o float mostrou norma 13,33
nao sei qual eh melhor...
ouvi falar que BigDecimal eh melhor pra trabalhar com valores monetarios....

vlw ...

Matheus Luis Ramos de Souza
[MSN]
Fabricio Cozer Martins
GUJ Ranger
[Avatar]

Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline

existem outros tipos de arredondamento, olha na API do BigDecimal.
E sem dúvida alguma, pra não te dar dor de cabeça no futuro, use BigDecimal quando estiver trabalhando com valores decimais, principalmente envolvendo valores monetários.



Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4
[MSN] [ICQ]
erickcellani
JavaEvangelist
[Avatar]

Membro desde: 13/05/2006 13:37:12
Mensagens: 425
Localização: São Paulo - SP
Offline

dm_thiago wrote:Opa! Isso mesmo. float, não int. Mas ainda continuaria usando DecimalFormtat =P


é que eu uso a jdk 1.4.2

--
Érick F. Cellani
[MSN]
Veneno
JavaGuru
[Avatar]

Membro desde: 12/09/2006 11:36:42
Mensagens: 238
Offline

ble...vou dar uma olhada ...
e vou usar BigDecimal rs ...

Brigadão a todos ...

Matheus Luis Ramos de Souza
[MSN]
Luiz Aguiar
Moderador
[Avatar]

Membro desde: 23/01/2005 00:05:55
Mensagens: 3840
Localização: São Paulo
Offline

Veneno wrote:ouvi falar que BigDecimal eh melhor pra trabalhar com valores monetarios....

Sim, pq não perde a precisão nos cálculos, se vc precisa disso, como num sistema monetário mesmo, onde não se pode perder 1 centavos de precisão, o BigDecimal seria a opção.

-
Blog de Tecnologia
GitHub
@AguiarLuiz
Recicla SP na App Store!




[WWW] [MSN] [ICQ]
gleise
JavaChild
[Avatar]

Membro desde: 20/05/2004 18:02:21
Mensagens: 147
Localização: São Carlos - SP
Offline

Fabrício Cozer Martins wrote:
tente usar o tipo de arredondamento ROUND_UP, assim:




Puxa, valeu Fabrício! Estava com o mesmo problema e funcionou certinho!
[Email] [WWW] [MSN]
juliocesarsrosa
JavaTeenager
[Avatar]

Membro desde: 19/10/2010 08:24:29
Mensagens: 178
Offline

Ola galera estou com o mesmo problema mas nao consigo aplicar essa solução ao meu codigo
esse é o meu codigo como eu poderia aplica essa solução nele?



Obrigado
juliocesarsrosa
JavaTeenager
[Avatar]

Membro desde: 19/10/2010 08:24:29
Mensagens: 178
Offline

Ja consegui obrigado
wellington.nogueira
GUJ Ranger
[Avatar]

Membro desde: 11/08/2006 11:29:56
Mensagens: 914
Localização: Osasco-SP
Offline

Há também o enum RoundingMode

Nele há uma tabela exemplificando os arredondamentos.

57 45 4C 4C 49 4E 47 54 4F 4E
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
"Se você acha que programar em Java com Swing é simples? Acredite em mim, não é!"
http://developmentforever.wordpress.com/
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team