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