Verificar se uma variável double está armazenando um int

4 respostas
J

existe algum método para verificar se uma variável do tipo double, está armazenando um valor do tipo int?

grato

Julio Romano

4 Respostas

J

Acho que o que você quis dizer é se tem como saber se o valor de uma variavel double é inteiro, não é isso? porque variavel double só armazena double, mesmo que seja 1, 2, 3, aí seria, 1.0, 2.0, 3.0…

Mas para o que quer, você pode fazer o seguinte, pegue o valor inteiro da variavel e compare com ela mesma, se for igual…

double d = 1.0;

if((int) d==d){
  //inteiro
}else{
  //não inteiro
}
J

tem certeza que esse codigo funciona?
acho que esse cast (se nao der erro por perda de precisao) apenas “trunca” a parte decimal do double, e a comparacao(se for possivel comparar um int com um double) vai dar sempre diferente.

acho que o melhor jeito, se o seu nao der certo, é fazer o seguinte:

double d = 25.0;
String temp = Double.toString(d);
String decimal = temp.split(".")[1];
if(Integer.parseInt(decimal) == 0) {
//o valor no double nao tem digitos decimais, ou seja, é inteiro
} else {
//o valor é fracionario
}

espero que funcione

J

A intenção do typecast é só truncar mesmo, e a comparação de double e int funciona e não dá sempre false…

1 = 1.0

então se a sua variavel tem o valor 2.0

(int) d <<- retorna 2

2 é igual a 2.0, então ele é inteiro.

agora se sua variavel tiver 2.3:

(int) d <<- retorna 2

2 não é igual a 2.3, então ele não é inteiro.

Entendeu?

J

“jairelton”:
A intenção do typecast é só truncar mesmo, e a comparação de double e int funciona e não dá sempre false…

1 = 1.0

então se a sua variavel tem o valor 2.0

(int) d <<- retorna 2

2 é igual a 2.0, então ele é inteiro.

agora se sua variavel tiver 2.3:

(int) d <<- retorna 2

2 não é igual a 2.3, então ele não é inteiro.

Entendeu?

entendi cara, valeu por explicar!
eu nunca tinha testado isso, e ja tinha obtido alguns erros tentando comparar variaveis de tipos diferentes, por isso postei aquilo…
mas ta ai, vivendo e aprendendo…

flw

Criado 28 de junho de 2005
Ultima resposta 29 de jun. de 2005
Respostas 4
Participantes 3