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 の場合について話しています)。