strtod如何检查0是错误还是好的值

时间:2015-06-29 09:33:21

标签: c++ strtod

我想将字符串转换为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时的情况)。

1 个答案:

答案 0 :(得分:4)

  

如果未执行转换,则返回零并且返回nptr的值   存储在endptr。

引用的位置

至少,这就是手册页所说的内容。