Verificar se o número digitado é inteiro

Normalmente solicitamos um valor ao usuário e esperamos que o usuário digite o valor conforme o tipo solicitado. Os algoritmos em linguagem C a seguir são duas formas de tratar a leitura de um número e determinar se o valor digitado era um número inteiro (int) ou real (float).

Primeira forma – utilizar uma variável auxiliar

A ideia é criar uma variável auxiliar inteira que receberá o valor digitado. Quando um valor float é atribuído a uma variável inteira, apenas a parte inteira consegue ser armazenada. Por isso, se o teste de igualdade resultar em true, significa que o valor fornecido era um número inteiro.

#include<stdio.h>

int main (){
    float valor;
    int aux;

    printf("Digite o numero");
    scanf("%f",&valor);

    aux = valor;
    if (aux == valor){
        printf("O numero digitado era inteiro");
    } else {
        printf("O numero digitado nao era inteiro");
    }

    return 0;
}

Segunda forma – utilizando casting

Casting de tipo de dado (type casting) permite converter um variável de um tipo em outro tipo. Nesse caso, o código abaixo utiliza o casting na hora de testar o valor. Se o valor digitado for igual a apenas a parte inteira dele mesmo, isso quer dizer que o valor digitado era um inteiro.

#include<stdio.h>

int main (){
    float valor;

    printf("Digite o numero");
    scanf("%f",&valor);

    if (valor == (int)valor){  //casting da variável para inteiro
        printf("O numero digitado era inteiro");
    } else {
        printf("O numero digitado nao era inteiro");
    }

    return 0;
}
Share

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.