Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

zecapistolas

O número é inteiro

Mensagens Recomendadas

zecapistolas    0
zecapistolas

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  ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zecapistolas    0
zecapistolas

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  ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    309
Rui Carlos

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).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zecapistolas    0
zecapistolas

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

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

cumps  ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    309
Rui Carlos

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).

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade