回答
如果你有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. 将双精度转换为QString
- 4. 如何将DBNULL转换为双精度?
- 5. 将字符串转换为双精度,
- 6. DirectShow - 将IGraphBuilder *转换为双精度(C++)
- 7. 将双精度转换为浮点数
- 8. 将文本转换为双精度
- 9. 将字符串转换为双精度
- 10. C#,将Npoi.ICell转换为双精度型
- 11. Objective C - 如何将双精度转换为长精度
- 12. Fortran:将双精度复数转换为单精度
- 13. 如何将双精度JavaScript数组转换为双精度数组。
- 14. 从java BigDecimal转换为双精度丢失精度为
- 15. Matlab从图像转换为双精度
- 16. 转换精度双为字符串
- 17. 将双精度矩阵转换为灰度.tif图像
- 18. C#将2D双精度数组转换为灰度图像
- 19. 如何转换黑莓中的双精度双精度?
- 20. 无法将双精度值作为字符串转换为textview
- 21. 如何将BigDecimal 0E-8转换为特定的双精度值
- 22. 将字符串转换为双精度时GSON中NumberFormatException
- 23. 如何将对象转换为双精度?
- 24. 无法将双精度数组转换为数组
- 25. HSSFCell将整数转换为双精度值
- 26. 如何将Python中的64位转换为双精度小数?
- 27. 将字符串转换为双精度错误
- 28. 在Fortran中将逻辑类型转换为双精度
- 29. Java Puzzler - 将一个双精度型转换为int
- 30. 将字符串转换为双精度 - Java
什么是'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字节。 –