程式碼如下
#include<stdio.h>
int main(){
char* s = "123.3";
double d = atof(s);
printf("%lf\n", d);
return 0;
}
結果總是為0.000000,而不是123.3,為什麼?
迷茫2017-07-05 10:47:54
因為你沒有include stdlib.h啊(”゜ロ゜)」
這是一個隱藏坑。因為你沒有包含頭文件,所以就沒有函數聲明,沒有函數聲明,則預設函式庫函數的回傳值是int型的。
你編譯時加上-Wall的話,它會很明確的告訴你沒有聲明的。