Precisão Numérica Excel para Java  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Ironlynx
Moderador
[Avatar]

Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline

Thingol, vc tava certo.A planilha que eu recebi, tinha os dados cortados.Olha os tipos de valores da planilha original:
8,54709767571% e -2,20100744472017%
Bom, conversei com o cara e como a base já foi toda gravada com 4 casas, vou usar o BigDecimal com Strings para evitar comportamnetos bizarros com o double.Logo, vai valer o 0.130100(ou 13,0100%).Um abraço á todos. (OBS.: seria bom se java tivesse uma classe que pudéssemos armazenar denominador/numerador com umas 20,30 casas.Se não me engano, acho que tem um projeto chamado JScience que faz algo assim usando uma implementação especial de BigInteger, acho eu.

Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Ironlynx wrote:Thingol, vc tava certo.A planilha que eu recebi, tinha os dados cortados.Olha os tipos de valores da planilha original:
8,54709767571% e -2,20100744472017%
Bom, conversei com o cara e como a base já foi toda gravada com 4 casas, vou usar o BigDecimal com Strings para evitar comportamnetos bizarros com o double.Logo, vai valer o 0.130100(ou 13,0100%).Um abraço á todos. (OBS.: seria bom se java tivesse uma classe que pudéssemos armazenar denominador/numerador com umas 20,30 casas.Se não me engano, acho que tem um projeto chamado JScience que faz algo assim usando uma implementação especial de BigInteger, acho eu.


Hum? Mas aí é que vai dar resultado diferente do Excel. O Excel faz cálculos intermediários com precisão do double, mas se você usar BigDecimal com precisão de 6 casas nos cálculos intermediários, vai ter problemas.


[WWW]
Ironlynx
Moderador
[Avatar]

Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline


Hum? Mas aí é que vai dar resultado diferente do Excel. O Excel faz cálculos intermediários com precisão do double, mas se você usar BigDecimal com precisão de 6 casas nos cálculos intermediários, vai ter problemas.

Vou usar 6 casas porque ele quer a porcentagem com 4.Sempre dá um resultado em complemetno ao anterior que é do tipo 1.057565, que é a razão real de crescimento do índice, ou seja,5,7565% de crescimento no período dado.

Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team