【问题标题】:C++ converting Variant Decimal to Double ValueC++ 将 Variant Decimal 转换为 Double 值
【发布时间】:2014-09-13 12:38:09
【问题描述】:

我有一个 _variant_t 变量,其中包含来自数据库的 DECIMAL 值..

问题是,当我尝试直接将其转换为双精度类型时,我得到了一个未定义的值。

例如,我有一个十进制值 = 1000.111

_varaint_t MyVar = getValueFromDatabase();        // MyVar is a decimal value = 1000.111
double MyDouble = (double) MyVar.dblVal;

cout << MyDouble << endl;         // Prints "4.941204871279e-318#DEN"

在 C++ 中将 Decimal 转换为 Double 的正确方法是什么?


更新:

当我尝试这个时,

_varaint_t MyVar = getValueFromDatabase();        
double MyDouble = (double) MyVar.decVal;

我得到一个编译错误:

No suitable conversion function from "DECIMAL" to "double" exists

【问题讨论】:

    标签: c++ double type-conversion decimal


    【解决方案1】:

    _variant_t 已经提供了正确的转换运算符,因此您无需直接引用 .dblVal 或 decVal(参见此处:http://msdn.microsoft.com/en-us/library/ew0bcz27.aspx)。

    所以你可以这样做:

    _variant_t MyVar = getValueFromDatabase();
    double myDouble = MyVar;
    

    如有必要,转换运算符将调用 VariantChangeType。

    【讨论】:

      猜你喜欢
      • 2013-06-14
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 2011-12-10
      • 1970-01-01
      • 2015-02-07
      相关资源
      最近更新 更多