возвращаемое значение strtod (), если строка равна нулю
Согласно MSDN:
strtod
возвращает 0, если преобразование не может быть выполнено или происходит недостаточное заполнение.Что если моя строка равна нулю (т. Е. 0,0000)? Как я могу узнать, нет ли ошибки при конвертации?
ОК, я использую следующий код для проверки идеи:
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 в этой принудительной ошибке. Любая идея?