經常要用到將浮點字符串轉為浮點數,之前一直用的是atof,這個是返回float ,即有效數字是在小數點後六位,如果對精度要求更高的話就需要用 strtod 這個函數了 。
並且這個可以處理更復雜的情況:
[cpp]
int main ()
{
char szOrbits[] = "365.24 29.53";
char * pEnd;
double d1, d2;
d1 = strtod (szOrbits,&pEnd); //自動處理截斷,並將後一部分賦值到pend,如果不需要則用NULL
d2 = strtod (pEnd,NULL);
printf ("The moon completes %.2f orbits per Earth year.\n", d1/d2);
return 0;
}
那直接實現atof 的功能:
char *str = "113.29464653";
double d = strtod(str,NULL);