2012-07-13 83 views
3

可能重复:
converting a string into a double将字符串转换为double的最佳方式?

什么是字符串转换为加倍的最佳方法是什么? 上午使用sstream,但我觉得它不是那么快..没有使用任何外部库或某事更快的wawy。

+2

“我觉得这是不是快” - 它有多快,你需要多快? – 2012-07-13 13:42:32

+0

这些字符串是否会有转换为双打的模式?如果是这样,最好的方法可能是手动滚动你自己的功能。 – 2012-07-13 13:43:44

+0

你尝试过'strtod'吗? – 2012-07-13 13:43:49

回答

3

strtod()将比使用sstream开销少。

#include <stdlib.h> 

char * s = ...; 
double d = strtod(s, 0); 
+2

当然,如果他的输入是在一个“字符串” ,他将不得不使用'c_str()'来获取它。它需要一些错误检查。 – 2012-07-13 13:47:23

0

您可以使用Boost库词法投 它们还包括他们的文档页面上的性能测试结果 boost lexical cast

欢呼

+0

@Mike:早期版本,新版本覆盖了很多类型,包括double。如果它没有自己的机制来执行转换,它只会退回到使用stringstream。 – 2012-07-13 14:36:20

+0

@Mike,这是正确的,在他们的测试结果中,他们将他们的方法与sstream进行比较,并显示lexicalcast是f#aster – 2012-07-13 14:42:24

相关问题