我想将字符串转换为double。我这样做:
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(错误),(我在谈论* end == 0时的情况)。
答案 0 :(得分:4)
如果未执行转换,则返回零并且返回nptr的值 存储在endptr。
引用的位置
至少,这就是手册页所说的内容。