我想使用strtod
函數在C++(Visual C++ 2010)中將字符串轉換爲double時檢測到下溢。下面的代碼,雖然我根據strtod
的文檔做了不,因爲我希望工作:strtod和下溢
char numStr[] = "123456.122111111123123123123132123123123123123124434345345";
char* pEnd;
double d = strtod(numStr, &pEnd);
int errorNum = errno;
if (errorNum == ERANGE) // this should be true
{
// underflow occurred
}
使用調試器,我發現errorNum
總是被設置爲0
和ERANGE
是34
。
我錯過了什麼?