• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zecapistolas

O número é inteiro

8 mensagens neste tópico

Bom Dia...  :biggrin:

Se alguém m pudesse ajudar.... Exite algum comando k verfica se um número é inteiro ou não?!... Se não existir comando, podem-m ajudar a fazer uma função k teste esse caso dos inteiros?!

Tenho um trabalho pa fazer e numa das partes desse trabalho, tenho k fazer esse teste do inteiro....

cumps  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mmmm... se a variavel for de tipo inteiro ( int ou longint ) o número é inteiro necessariamente.

Se te estiveres a referir a uma variavel de virgula flutuante... mmm já não toco em c há coisa de 6 anos... mas vamos cá ver... tens que calcular o resto da divisão por 1 e testar se é igual a zero.

Experimenta isto

bool is_this_int(float var){

   float testvalue = 0;
   if ( var%1 == testvalue ){
      return true;
   }
   else{
    return false;
   }
}

já que cá estamos, e porque estou perro em C... não me lembro como é que o c trata os literais nas comparações...

isto funciona se eu comparar o resto log com zero sem ter usar uma variavel auxiliar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado aos dois pela ajuda.... Mas, Rui Carlos, se fizer o round e depois o resto da divisão por 1....é claro k vai dar inteiro!!

cumps  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas, Rui Carlos, se fizer o round e depois o resto da divisão por 1....é claro que vai dar inteiro!!

não percebi :dontgetit:

por que é que havias de fazer um 'round' e depois a divisão inteira? o round sozinho resolve o problema.

(aliás, mesmo usando o 'round' continuas a não poder fazer depois a divisão inteira porque o resultado é na mesma um float/double).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas, então faço  o round, ou seja arredondo o número, e depois?!

Desculpa  :-[, mas ainda ñ tou a entender....  :wallbash:

cumps  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a função 'isInt' que coloquei atrás já te resolve o problema...

se o número for inteiro, o número depois de arrendondado é igual ao número original (round(n)==n).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora