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.26.
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.26228881836
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