回答
如果你有char*
或wchar_t*
字符串,使用strtod
/wcstod
函數讀取double。
E.g.使用@史蒂夫的建議:
_bstr_t x;
double q = wcstod(x, NULL); // implicit conversion!
double p = strtod(x, NULL); // same
顯然_bstr_t
具有隱式轉換運營商既const char *
和const wchar_t*
,這樣你就可以直接在浮動解析函數使用它們。
請注意,轉換爲char *調用[ConvertBSTRToString](http://msdn.microsoft.com/en-us/library/ewezf1f6(v = VS.100).aspx),它分配內存,因此它相對昂貴(儘管結果被緩存)。轉換到wchar_t *是便宜的,因爲無論如何BSTR基本上是一個寬字符。 –
弗蘭克:很高興知道。所以更喜歡'wcstod'版本:-) –
可以轉換爲const char*
(有此一converter,處理映射從寬字符到MBCS蓋下),然後轉換爲加倍如你所願 - stringstream::operator>>例如
呼叫wcstod或_wcstod_l如果你想控制區域。
bstr_t myBstr_t = L"1.234";
double d = wcstod(myBstr_t, NULL);
- 1. 無法將雙精度轉換爲雙精度
- 2. 從雙精度轉換爲單精度
- 3. 將字符串轉換爲雙精度,
- 4. DirectShow - 將IGraphBuilder *轉換爲雙精度(C++)
- 5. 如何將char *轉換爲雙精度?
- 6. 將雙精度轉換爲整數
- 7. 將雙精度轉換爲浮點數
- 8. C#,將Npoi.ICell轉換爲雙精度型
- 9. 如何將DBNULL轉換爲雙精度?
- 10. 將時間轉換爲雙精度
- 11. 將字符串轉換爲雙精度
- 12. 將雙精度轉換爲QString
- 13. 將字符串轉換爲雙精度?
- 14. 將文本轉換爲雙精度
- 15. C#將日期轉換爲雙精度
- 16. 將字符串轉換爲雙精度 - 丟失精度
- 17. Fortran:將雙精度複數轉換爲單精度
- 18. Objective C - 如何將雙精度轉換爲長精度
- 19. 將經度和緯度值(度)轉換爲雙精度。 Java
- 20. Java如何將包含多個雙精度的byte []轉換爲雙精度[]
- 21. 如何將雙精度JavaScript數組轉換爲雙精度數組。
- 22. 從java BigDecimal轉換爲雙精度丟失精度爲
- 23. 將雙數組轉換爲雙精度結構
- 24. Matlab從圖像轉換爲雙精度
- 25. 轉換精度雙爲字符串
- 26. 將雙精度矩陣轉換爲灰度.tif圖像
- 27. C#將2D雙精度數組轉換爲灰度圖像
- 28. 將十六進制轉儲轉換爲雙精度
- 29. 如何轉換黑莓中的雙精度雙精度?
- 30. 爲什麼我無法將字符串轉換爲雙精度?
什麼是'bstr_t'?發佈代碼和/或將類型解碼爲C++基元類型。 –
這是一個爲COM'BSTR'(這是一個指向寬字符的特殊的語義,基本上) –
@Kerrek SB的RAII包裝類:這是一個特定於Windows的[C++引用計數包裝(http://msdn.microsoft .com/en-us/library/zthfhkd6.aspx)用於特定於Windows的['BSTR'類型](http://msdn.microsoft.com/zh-cn/library/1b2d7d2c-47af-4389-a6b6-b01b7e915228 (VS.85)),代表「基本字符串」。它本質上是一個雙空終止的Unicode字符串,其前綴長度爲4字節。 –