Caro Mike,
A classe java.math
"Se um long ou um double n�o for grande o suficiente para voc�, o pacote
java.math oferece duas classes, BigInteger e BigDecimal, que d�o suporte a
n�meros de precis�o arbitr�ria. Essas s�o classes completas, com um grupo de
m�todos para realizar matem�tica com precis�o arbitr�ria."
Texto do Livro : Aprendendo Java - Editora Campus - Patrick Niemeyer &
Jonathan Knudsen. ( p�gina 232 ).
Pesquise sobre esse assunto, acredito que seja a solu��o do seu problema.
Segue exemplo abaixo para sua an�lise e coment�rio.
Um abra�o,
Edilson Sanches de Souza
MS ANTUNES INFORM�TICA
****************************************************************************
**********************************
import java.math.*;
public class MikeMoreira
{
public static void main(String[] args)
{
System.out.println(" *** In ***");
double dblTeste = 1234567890123456789.0;
Double DblTeste = Double.valueOf("123456789012345.1234");
BigDecimal solucao1 = new BigDecimal("1234567890123456789.0");
BigDecimal solucao2 = new BigDecimal("123456789012345.1234");
BigDecimal solucao3 = new BigDecimal("1.2345678901234567890");
BigDecimal solucao4 = new BigDecimal("123.4567890123451234");
BigDecimal soma = solucao1.add(solucao2);
System.out.println(" Teste 1 " + dblTeste );
System.out.println(" Teste 2 " + DblTeste );
System.out.println(" Solucao1 " + solucao1);
System.out.println(" Solucao2 " + solucao2);
System.out.println(" Solucao3 " + solucao3);
System.out.println(" Solucao4 " + solucao4);
System.out.println(" Soma " + soma);
System.out.println(" *** Out ***");
}
}
****************************************************************************
**********************************
----- Original Message -----
From: Mike Moreira <[EMAIL PROTECTED]>
To: Grupo Discussao Java <[EMAIL PROTECTED]>
Sent: Tuesday, April 02, 2002 11:31 AM
Subject: [java-list] Problemas com double / Double
Ola,
Estou tendo problemas com tratamento do tipo double com mais de 16 numeros.
No exemplo abaixo o "Teste 1" esta arredondando os inteiros e no "Teste 2"
esta arredondando os decimais
Alguem tem alguma ideia ou ja passou por esse tipo de problema
System.out.println(" *** In ***");
double dblTeste = 1234567890123456789.0; file://123456789012345.1234;
Double DblTeste = Double.valueOf("123456789012345.1234");
System.out.println(" Teste 1 " + dblTeste );
System.out.println(" Teste 2 " + DblTeste );
System.out.println(" *** Out ***");
*** In ***
Teste 1 1.23456789012345677E18
Teste 2 1.2345678901234512E14
*** Out ***
Obrigado
<><><><><><><><><><><><><><><><><><>
Mike Moreira
CPA Sistemas de Informa��o
<><><><><><><><><><><><><><><><><><>
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------