existe um neg�cio em Java que se chama promo��o de tipos.
 
Para se realizar uma express�o aritm�tica, os tipos de todos os membros da
express�o devem ser equivalentes. Geralmente eles s�o igualados com os
tokens de tipagem mais alta (double > long > int...).
 
Na sua express�o 
 
width /1.25;
 
eu n�o sei o tipo de width, mas eu sei que 1.25 � double (default).
Como double � o "maior" tipo (64 bits), eu tenho a certeza de que seu width
vai ser promovido para double e, consequentemente, o resultado da opera��o
tamb�m ser� double. 
No final, ele estar� tentando atribuir um double (lado direito) com algum
outro tipo (lado esquerdo). Java n�o vai permitir a compila��o, caso a
vari�vel width n�o seja double. Por isso ele deu o erro de lost of
precision.
 
Contudo, vc pode assumir a responsabilidade e dar a sua palavra de que n�o
haver� perda de precis�o.
Para se fazer isto, vc faz o cast. Foi o que vc tentou fazer, mas � assim:
 
 
width = (int) width /1.25;
 
By Al�!
 
 
 

-----Mensagem original-----
De: Wagner Cunha [mailto:[EMAIL PROTECTED]]
Enviada em: segunda-feira, 25 de junho de 2001 16:22
Para: [EMAIL PROTECTED]
Assunto: [java-list] Convers�o de tipos primitivos


Ol�...
 
sou novato em java e estou precisando de uma ajuda para resolver um
probleminha:
 
width = width /1.25;

mas como width eh do tipo int, estou tendo uma mensagem de possible loss of
precision...

tentei definir para o compilador que eu quero converter:

width = int(width/1.25);

mas agora eu tenho o erro

.'class' expected

e 

unexpected type

 

algu�m pode me ajudar?


------------------------------ 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
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a