Orkut Gmail Agenda Docs Web mais »
Grupos visitados recentemente | Ajuda | Acessar
Página inicial dos Grupos do Google
Informações do grupo
Membros: 220
Idioma: Português (Brasil)
Categorias do grupo:
Ciência e tecnologia
Computadores
Mais informações sobre o grupo »
Arquivos e páginas recentes
[JAVA Pegadinha] do dia 02/07/2008    

Essa é tão fácil que eu vou deixar aberta:

 

public class Calc

{

      public static void main(String[] args)

      {

            double b = 1 + 3/2;

            System.out.println(b); 

      }

 

}

 

 

Qual a saída do código acima?

Resposta:

2.0 . Em java os literais 1, 2...3 são interpretados como int. Assim é feito o arredondamento quando a operação 3/2 é executada.

Existem várias formas de contornar essa situação, entre elas:

 

double b = 1.0 +3.0/2.0

double b = 1d +3d/2d

double b = (double)1 + (double)3/(double)2

Versão: 
As 3 mensagens mais recentes sobre essa página (13 total) - visualizar a discussão inteira
3 jul 2008 por Breno
Resposta da pegadinha.

Click on http://groups.google.com/group/ti-de-minas/web/java-pegadinha-do-dia-02-07-2008
- or copy & paste it into your browser's address bar if that doesn't
work.
3 jul 2008 por Breno Araújo
Funciona também. Muito bem lembrado Odon. Valeu pela dica.
2008/7/3 Rafael Odon <odon.rafael@gmail.com>:
3 jul 2008 por Rafael Odon
e colocar .0????
1.0 + 3.0/2.0
acho que semanticamente fica mais coerente... se funcionar...
até+
2008/7/3 Breno Araújo <brenopuc@gmail.com>:
10 mais mensagens »
Criar um grupo - Grupos do Google - Página inicial do Google - Termos de Uso - Política de Privacidade
©2009 Google