检查用户输入是浮点数还是整数

时间:2015-11-11 17:34:16

标签: c

我创建了以下程序,以查看来自用户的输入是浮点数还是整数。问题有时它表示输入是浮动的,有时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");
        }
}

1 个答案:

答案 0 :(得分:0)

因为,您将num1分配给num2,而num2则声明为整数。

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

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

并且%并不像我们所知的那样适用于浮动。

如果要将输入检查为float或integer,则可以使用ceil函数

if(ceil(num1)==num1)

这肯定会奏效。

我在这里粘贴样本:

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

    if (ceil(num1)==num1) {

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