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] 
-------------------------------------------------------------------------

Responder a