C ++将Variant Decimal转换为Double Value [英] C++ converting Variant Decimal to Double Value

查看:368
本文介绍了C ++将Variant Decimal转换为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆