我的代码在将数据类型从float更改为double时生成-nan

时间:2016-05-14 12:31:59

标签: c compiler-errors nan

int main(void) {
    float a;
    scanf("%f", &a);
    double c = sqrt(a);
    printf("%f", c);
    return 0;
}

浮点变量导致输出正确。 但是,在将数据类型更改为double结果时,NaN。

1 个答案:

答案 0 :(得分:1)

您应该使用格式说明符%lf来接收double

#include<stdio.h>
#include<math.h>

int main(void) {
    double a;
    scanf("%lf", &a);
    double c = sqrt(a);
    printf("%lf", c); //printf("%f", c) also works perfectly.
    return 0;
}

由于您可能只使用%f,因此您获得了NaN。