【发布时间】:2016-09-10 15:16:08
【问题描述】:
int main(void) {
float a;
scanf("%f", &a);
double c = sqrt(a);
printf("%f", c);
return 0;
}
浮点变量会产生正确的输出。 但是,将数据类型更改为双精度结果是 NaN。
【问题讨论】:
-
您使用的是哪个编译器和操作系统?
-
在进行双重输入时,您应该使用格式说明符 `%lf'。您可能没有这样做,这会导致 NaN。
-
"我的代码产生 -nan" 显示无需修改即可重现问题的代码。
-
@CodingBatman,但 OP 使用的是
float,而不是double。 -
@AlterMann,但在帖子下方,OP 说 关于将数据类型更改为双精度
标签: c compiler-errors nan