C++ 将字符串转换为双精度的最佳方法?

C++ 将字符串转换为双精度的最佳方法?,c++,string,double,C++,String,Double,可能重复: 将字符串转换为双精度的最佳方法是什么? 我正在使用sstream,但我觉得它没有那么快。。如果不使用任何外部库或其他东西,是否有更快的wawy。strotd()比使用sstream的开销更小 #include <stdlib.h> char * s = ...; double d = strtod(s, 0); #包括 char*s=。。。; 双d=strtod(s,0); 您可以使用boost库词法转换 它们还将性能测试结果包含在文档页面上 干杯“我觉得它不快”

可能重复:

将字符串转换为双精度的最佳方法是什么? 我正在使用sstream,但我觉得它没有那么快。。如果不使用任何外部库或其他东西,是否有更快的wawy。

strotd()
比使用
sstream
的开销更小

#include <stdlib.h>

char * s = ...;
double d = strtod(s, 0);
#包括
char*s=。。。;
双d=strtod(s,0);

您可以使用boost库词法转换 它们还将性能测试结果包含在文档页面上


干杯

“我觉得它不快”-它有多快,你需要它有多快?这些弦有没有转换成双打的模式?如果是这样,最好的方法可能是手动滚动您自己的函数。您是否尝试过strtod?当然,请参阅类似的Q/A,如果他的输入是在
字符串中,他将不得不使用
c_str()
来获得它。而且它需要一些错误检查。@Mike:早期版本有,新版本有许多类型的覆盖,包括double。只有当stringstream没有自己的转换机制时,它才会使用stringstream。@Mike,没错,在他们的测试结果中,他们将自己的方法与sstream进行比较,并表明lexicalcast是f#aster