Dúvidas iniciante

8 respostas
I

Como faço para retornar um float da divisão de dois inteiros?
Estou fazendo assim:

float soma = 0;
soma = soma + (10/30);

O resultado em soma é 0, pq?

Outra dúvida:
Estou fazendo um trabalho e usei todos os métodos e classes como públicos, e funcionou normalmente sem o uso do static. Em que mudaria se eu usasse o static junto com o public?

Valeu pessoal!

8 Respostas

D
soma += (10/30.0);
System.out.println(soma);

assim retornaria o 0.33333334,
alguem me corrija se eu estiver errado o/ blz?
int dividido por int sempre vai dar int
se você dividir int por um float, você terá um float
ou seja
10/30.0 retorna 0.33333334 e 10/30 retorna 0, porque somenta a parte inteira importa para a divisão de int por int…
você poderia fazer assim:

int x = Float.parseFloat(30);
soma += 10/x;

e sobre os métodos, um método public static, além de ser static ele é público, ao menos ao meu ver…

pessoal, se falei algo errado por favor me corrijam também sou iniciante em java =p

C

vc pode forçar que o resultado da divisão de dois inteiros seja um double fazendo cast…

int a = 10;
int b = 3;

double c = ((double)a)/b;

Abraço!

D

cassio:
vc pode forçar que o resultado da divisão de dois inteiros seja um double fazendo cast…

int a = 10;
int b = 3;

double c = ((double)a)/b;

Abraço!

como o inicjava queria um Float só trocar
ao invés de double… só colocar pra fazer o cast com Float o//

float c = (float) a/b;

valeu! :slight_smile: espero ter ajudado o/

F

public, private e protected dizem respeito a visibilidade da classe, do método ou da variável, enquanto static torna o membro pertencente a classe. Ou seja, vc não precisa de uma instância para utilizar o método, ex:

Integer.parseInt(minhaString);

O método parseInt da classe Integer é estático, vc pode usá-lo sem ter um objeto da classe instanciado (pode usar o nome da classe e o operador ponto). Quando se trata de variáveis estáticas todos os objetos instanciados compartilharão o valor daquela variável, só haverá uma cópia daquela variável para todas as instâncias daquela classe. Lembrando que não há problema algum em usar uma instância da classe pra acessar o membro estático.

:slight_smile:

C

Deh:
cassio:
vc pode forçar que o resultado da divisão de dois inteiros seja um double fazendo cast…

int a = 10;
int b = 3;

double c = ((double)a)/b;

Abraço!

como o inicjava queria um Float só trocar
ao invés de double… só colocar pra fazer o cast com Float o//

float c = (float) a/b;

valeu! :slight_smile: espero ter ajudado o/

Besteira usar float, double tem maior precisão… Já existem erros de arredondamento com double, imagine com float… As máquinas atuais têm memória suficiente para isso :slight_smile:

Abraço!

L
inicjava:
Como faço para retornar um float da divisão de dois inteiros? Estou fazendo assim:

float soma = 0;
soma = soma + (10/30);

O resultado em soma é 0, pq?

Outra dúvida:
Estou fazendo um trabalho e usei todos os métodos e classes como públicos, e funcionou normalmente sem o uso do static. Em que mudaria se eu usasse o static junto com o public?

Valeu pessoal!

simples parceiro ele ta imprimindo apenas a parte inteira 0 sendo que o resultado eh 0.!! coloque:
[code]
System.printf("%0.2f", soma);
[code]
e veja se o resultado no sai preciso!!

C
camilolopes:
inicjava:
Como faço para retornar um float da divisão de dois inteiros? Estou fazendo assim:

float soma = 0;
soma = soma + (10/30);

O resultado em soma é 0, pq?

Outra dúvida:
Estou fazendo um trabalho e usei todos os métodos e classes como públicos, e funcionou normalmente sem o uso do static. Em que mudaria se eu usasse o static junto com o public?

Valeu pessoal!

simples parceiro ele ta imprimindo apenas a parte inteira 0 sendo que o resultado eh 0.!! coloque:
[code]
System.printf("%0.2f", soma);
[code]
e veja se o resultado no sai preciso!!

Não é por mal não Camilo, mas isso que vc disse não tem muito haver não... O printf apenas oferece máscaras para facilitar a impressão formatada, porém não resolve o problema do nosso colega...
Sempre que dividirmos um inteiro por outro, teremos como resultado outro inteiro. Você pode até guardar o resultado em um double (que é exatamente o que ele estava fazendo), porém caso haja algarismos significativos após a virgula, eles serão truncados no resultado. Para evitar isso, só mesmo fazendo um cast da divisão antes de jogar o resultado no double ou float :)

Abraço!

L

entendi que ele queria ter a precisao apos a virgula!!

Criado 20 de setembro de 2006
Ultima resposta 21 de set. de 2006
Respostas 8
Participantes 5