Return double apenas com o valor inteiro  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
JhowTroMundo
JavaTeenager
[Avatar]

Membro desde: 15/09/2009 02:33:50
Mensagens: 165
Localização: São Paulo
Offline

Por que esse codigo...:



tem esta saida...:

1.0
1.0
1.6666666666666667

???

Não vejo razão.

The more men talk, the less they think.
[Email] [MSN]
Ziguifrid
Debugger

Membro desde: 05/04/2009 10:55:56
Mensagens: 55
Offline

Tenta colocar um static no segundo public double.

http://www.guj.com.br/articles/121

This message was edited 1 time. Last update was at 03/01/2011 10:27:13

marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

A divisão de 2 inteiros sempre retorna um inteiro. Sempre.

No método 'get' você divide 5 por 3. São dois inteiros. Portanto o resultado é 1 e o resto é 2.

No método 'get2' você faz o mesmo e armazena o resultado em um double. Note que o valor da variável também será 1.

Quando você faz isso:

Você está fazendo um cast do 5 para double e depois dividindo por 3. É o mesmo que fazer isso:

Como um dos operadores é double, o resultado também é um double (no caso, 1.666666666667).

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Depois de entender o que eu disse acima, pense (sem compilar!) no que seria impresso com a seguinte linha:

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
mews
Debugger
[Avatar]

Membro desde: 28/03/2009 06:45:07
Mensagens: 59
Offline

exatamente como o nosso amigo marcobiscaro2112 disse.

Por mais que o retorno do seu método seja double, a operação está sendo feita entre dois número inteiros.
Uma forma seria criando uma variável double e atribuindo a ela um valor e em seguida realizar o cálculo utilizando as variáveis criadas.
Outra forma, mas não tão correta seria fazer da seguinte forma:

...onde o "d" após o número indica que esse é do tipo double;

Ajudar os outros é viciante!

Willian Mews
Analista de Desenvolvimento
Estudante de Engenharia da Computação
[WWW] [MSN]
JhowTroMundo
JavaTeenager
[Avatar]

Membro desde: 15/09/2009 02:33:50
Mensagens: 165
Localização: São Paulo
Offline

marcobiscaro2112 wrote:Depois de entender o que eu disse acima, pense (sem compilar!) no que seria impresso com a seguinte linha:


Hmmmm

Agora sim vejo razão.

O cast vale apenas para o 5, e não pro resultado da divisão 5/3, que é o caso do seu exemplo (que também resultaria em 1.0).

Muito obrigado pelo esclarecimento.

The more men talk, the less they think.
[Email] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team