在 c 语言中判断浮点数的方法有两种:使用 isnan() 和 isinf() 函数检查 nan 和无穷值;使用 fmod() 函数计算余数,判断余数是否是有限值。
如何在 C 语言中判断浮点数
浮点数是一种表示实数的计算机数据类型,用于存储带有小数部分的数字。在 C 语言中,判断一个值是否为浮点数有两种方法:
1. 使用 isnan() 和 isinf() 函数
- isnan() 用来检查一个值是不是一个未定义的数 (NaN)。
- isinf() 用来检查一个值是不是正无穷或负无穷。
这些函数返回一个非零值来表示真,或 0 来表示假。例如:
#include <math.h>
int main() {
float x = NAN; // 未定义的数
float y = INFINITY; // 正无穷
if (isnan(x)) {
printf("x 是一个未定义的数。n");
}
if (isinf(y)) {
printf("y 是正无穷。n");
}
return 0;
}</math.h>
2. 使用 fmod() 函数
- fmod() 函数计算两个浮点数之间的余数。如果余数是一个有限值,则该值是一个浮点数。如果余数是无穷或 NaN,则该值不是浮点数。
例如:
#include <math.h>
int main() {
float x = 3.14; // 浮点数
float y = INFINITY; // 无穷
float remainder1 = fmod(x, 1.0); // 有限余数
float remainder2 = fmod(y, 1.0); // 无穷余数
if (isfinite(remainder1)) {
printf("remainder1 是一个浮点数。n");
} else {
printf("remainder1 不是一个浮点数。n");
}
if (isfinite(remainder2)) {
printf("remainder2 是一个浮点数。n");
} else {
printf("remainder2 不是一个浮点数。n");
}
return 0;
}</math.h>
上述代码将打印以下输出:
remainder1 是一个浮点数。
remainder2 不是一个浮点数。