根据 MSDN:
strtod
如果无法执行转换或发生下溢,则返回 0。
如果我的字符串等于零(即 0.0000)怎么办?我怎么知道转换是否没有错误?
OK,我用下面的代码来验证一下思路:
char *Y = "XYZ";
double MyNum;
char *MyEndPtr;
int Err_Conversion = 0;
errno = 0; //reset
MyNum = strtod (Y, &MyEndPtr);
if ( (MyNum == 0) && (errno != 0) && (strcmp(Y, MyEndPtr) == 0) )
{ Err_Conversion = 1; }
我看到 MyNum = 0,但从来没有看到 Y 的内容复制到 MyEnPtr,或者在这个强制错误中 errno = 0。任何想法?