我有一个_variant_t变量,它包含来自数据库的DECIMAL值。
问题是,当我尝试将其直接转换为double类型时,得到了一个未定义的值。
例如,我有一个十进制值= 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
_variant_t已经提供了适当的转换运算符,因此您无需直接引用.dblVal或decVal(请参见此处:http : //msdn.microsoft.com/zh-cn/library/ew0bcz27.aspx)。
因此,您可以执行以下操作:
_variant_t MyVar = getValueFromDatabase();
double myDouble = MyVar;
如有必要,转换运算符将调用VariantChangeType。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句