我创建了以下程序来查看用户输入是 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/