Lindomar, você está usando um float (32 bits) com precisão de, no "chute", +- 7 casas decimais. Quando você promove este float para um double (64 bits) você eleva esta precisão para +- 15.  Acredito que a parte que você achou estranho (228881836) não representa nada para a integridade de um objeto da classe Float, pois este objeto não tem alcance para trabalhar com precisão acima do valor 23.260000.....

 

Espero ter contribuído (e estar certo!). :^)

[]s

 

 

 

Jorge Luiz Santos Farias

Coordenador de Projetos - NDS

[EMAIL PROTECTED]

foton® Informática e Serviços

Fone: (61) 328 5060 R.: 203

-----Mensagem original-----
De: Lindomar Silva [mailto:[EMAIL PROTECTED]]
Enviada em: segunda-feira, 25 de março de 2002 07:00
Para: java-list@soujava.org.br
Assunto: [java-list] Float e Double

 

Pessoal, mandei a pouco tempo um e-mail perguntando como resolvia a quele proble de multiplicar um double por um int, bom isto já está ok, dei uma olhada na classe NumberFormat e creio que agora esteja ok.

Entretanto analisei o seguinte código:

 

Float f1=new Float(23.26);

System.out.println(f1.doubleValue()); -> o resultado aqui é 23.260000228881836

 

Por que nesta transformação aparecem 228881836?

Não era para ser tudo zero?

Será que na declaração do objeto do tipo Float, o 23.26 não é EXATAMENTE 23.26?

 

 

 

 


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.338 / Virus Database: 189 - Release Date: 03/14/2002

Responder a