existe algum método para verificar se uma variável do tipo double, está armazenando um valor do tipo int?
grato
Julio Romano
existe algum método para verificar se uma variável do tipo double, está armazenando um valor do tipo int?
grato
Julio Romano
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
}
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
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?
[quote=“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?[/quote]
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