如果有人可以解释如何使用该功能,那就太棒了。我不明白参数。
由于
答案 0 :(得分:5)
第一个参数是指向字符的指针。 c_str()为您提供来自字符串对象的指针。第二个参数是可选的。它将包含指向字符串中数值后面的下一个char的指针。有关更多信息,请参阅http://www.cplusplus.com/reference/clibrary/cstdlib/strtod/。
string s;
double d;
d = strtod(s.c_str(), NULL);
答案 1 :(得分:3)
第一个参数是要转换的字符串,第二个参数是对char *的引用,您希望指向原始字符串中float之后的第一个char(如果您想要开始阅读字符串后的数字)。如果您不关心第二个参数,可以将其设置为NULL。
例如,如果我们有以下变量:
char* foo = "3.14 is the value of pi"
float pi;
char* after;
pi = strtod(foo, after)
之后的值将是:
foo is "3.14 is the value of pi"
pi is 3.14f
after is " is the value of pi"
请注意,foo和after都指向同一个数组。
答案 2 :(得分:1)
如果您使用的是C ++,那么为什么不使用std::stringstream
?
std::stringstream ss("78.987");
double d;
ss >> d;
或者,更好boost::lexical_cast
为:
double d;
try
{
d = boost::lexical_cast<double>("889.978");
}
catch(...) { std::cout << "string was not a double" << std::endl; }
答案 3 :(得分:0)
我不明白参数。
点击此链接strtod。以示例提供所有信息。