2012-07-13 70 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

相關問題