0

string を 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の場合、結果が正常かどうかを確認するにはどうすればよいですか? たとえば、string("0") を送信すると 0 が返されますが、これはエラーではありません。しかし、他の文字列、つまり数値を送信することもできますが、変換されず、0 (エラー) も返されます ( *end == 0 の場合について話しています)。

4

1 に答える 1

4

変換が実行されない場合、ゼロが返され、nptr の値が endptr によって参照される場所に格納されます。

少なくとも、それはmanページが言うことです。

于 2015-06-29T09:39:57.320 に答える