C ++将Variant Decimal转换为Double Value [英] C++ converting Variant Decimal to Double Value
问题描述
我有一个_variant_t变量,它包含一个来自数据库的DECIMAL值。
I have a _variant_t variable that contains a DECIMAL value from a database..
问题是,当我尝试直接将其转换为双重类型。
The problem is, I get an undefined value when I try to directly convert it to double type.
例如,我有一个十进制值= 1000.111
For example, I have a decimal value = 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 ++中?
What is the right way to convert Decimal to Double in C++?
更新:
UPDATE:
当我尝试这个,
_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/en-us/library/ew0bcz27.aspx )。
_variant_t already supplies the proper conversion operator, so you don't need to refer directly to .dblVal or decVal (see here: http://msdn.microsoft.com/en-us/library/ew0bcz27.aspx).
所以你可以这样做:
_variant_t MyVar = getValueFromDatabase();
double myDouble = MyVar;
如果需要,转换运算符将调用VariantChangeType。
The conversion operator will call VariantChangeType if necessary.
这篇关于C ++将Variant Decimal转换为Double Value的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!