我想将字符串转换为双精度。我这样做:
bool String2ValueType(const std::string & a_str_value_type, double & a_result)
{
if(a_str_value_type.empty())
return false;
char * end;
double result = strtod(a_str_value_type.c_str(), &end);
if(*end!=NULL)
return false;
a_result = result;
return true;
}
如果结果为 0,我如何检查结果是否正常?例如,如果我发送字符串(“0”),我将得到 0,这不是错误。但我也可以发送一些其他字符串——即数字,但它不会被转换,我也会得到 0(错误),(我说的是 *end == 0 时的情况)。