检查用户输入是 float 还是整数

标签 c

我创建了以下程序来查看用户输入是 float 还是整数。问题是有时它说输入是 float ,有时 ts 说它是整数。甚至像 1.24 这样的数字是整数。

#include <stdio.h>
int main(void) {

        float num1;

        printf("Enter number: ");
        scanf("%lf", &num1);

        int num2 = num1;

        if (((num2 * 100) % 100) == 0) {

                printf("float \n");
        }
        else {
                printf("integer \n");
        }
}

最佳答案

因为,您将 num1 分配给 num2,并且 num2 被声明为整数。

Means if you do like:
num1=34.5;
then after num2=num1;
num2=34; not 34.5

因此,你的数字在这里变成整数。

正如我们所知,% 不适用于 float 。

如果你想检查输入是 float 还是整数,那么你可以使用 ceil 函数

if(ceil(num1)==num1)

这肯定会起作用。

我在此处粘贴示例:

    float num1;
    printf("Enter number: ");
    scanf("%f", &num1);

    if (ceil(num1)==num1) {

            printf("integer \n");
    }
    else {
            printf("float \n");
    }

关于检查用户输入是 float 还是整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33656405/

相关文章:

c++ - 在 OpenCV C/C++ 中只过滤掉一个轮廓

c - strcmp 的段错误(核心转储)错误

c - Arduino:错误: 'PubNub' 未在此范围内声明

c - 如何访问数组的移动部分

c - gdb 'x' 命令有什么作用?

奇怪的只读符号显示在初始化数据部分(D)中,单位为 nm

c - 如何使用 strcat() 函数?

c - 以宽字符作为索引的全局 C 数组

c++ - 将递增/递减运算符放在三元/条件运算符中是否安全?

c - 为什么一个简单的 C 程序需要系统调用?