如何判断输入的数是小数
时间: 2024-10-14 21:05:28 浏览: 17
在C语言中,直接判断一个整数是否为小数并不常见,因为整数类型(如int或long)不能表示分数或小数。如果你想检查一个double类型的值(它可以用来存储小数),你可以使用以下方法:
```c
#include <stdio.h>
int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
// 判断num是否为无穷大或不是有限数值
if (isnan(num) || isinf(num)) {
printf("The input appears to be non-finite.\n");
} else if (num == 0.0) { // 包括0.0
printf("The input is zero.\n");
} else if ((int)(num * 10) % 1 != 0) { // 如果尾数不为零,则是小数
printf("The input is a decimal number.\n");
} else {
printf("The input is an integer.\n");
}
return 0;
}
```
这段代码首先读取一个double类型的输入,然后用`isnan()`、`isinf()`函数检查是否是无穷大或非数字,再检查是否等于零。如果都不是,就通过计算乘以10后的结果的小数部分(`(int)(num * 10) % 1`)来确定输入是否是整数。
阅读全文