Linux平台下atof总是返回0.0

代码如下

#include<stdio.h>

int main(){


   char* s = "123.3";
   double d = atof(s);
   printf("%lf\n", d);

   return 0;
}

结果总是为0.000000,而不是123.3,为什么?

阅读 3.6k
1 个回答

因为你没有include stdlib.h啊(」゜ロ゜)」
这是一个隐蔽坑。因为你没有包含头文件,所以就没有函数声明,没有函数声明,则默认库函数的返回值是int型的。
你编译时加上-Wall的话,它会很明确的告诉你没有声明的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏