C ++将变量小数转换为双精度值

用户名

我有一个_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
保罗·布兰多利(Paolo Brandoli)

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

因此,您可以执行以下操作:

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C#如何将双精度数转换为带小数点和千位的字符串

在C#中将指数双精度值转换为int

在C#中将json的双精度值转换为DateTime

在C#中将双精度值转换为DateTime

(C++) 试图将双精度转换为整数(解释)

C ++将字符串精确转换为双精度

将Objective-C方法转换为NSInputStream的Swift(将字节转换为双精度)

如何将双精度值转换为字符串而不丢失c#中的数据

将小数转换为双精度

C#在转换为字符串时如何防止双精度值截断

如何在C ++中安全地将双精度型转换为整数?

C#将货币字符串转换为双精度

C#如何精确地将双精度转换为十进制?

使用C#从Excel读取值将双精度转换为字符串

C#如何将双精度型转换为带指数符号的字符串

C ++将包含对象的矢量转换为包含双精度的矢量

在没有C ++的情况下将字符串转换为双精度

如何从C#中的双精度值修剪小数

C#将变量的值转换为变量

如何在将双精度值转换为字符串后从双精度值中删除小数点

C / C ++将双精度数转换为具有最少非零数字的定点数

如何在C#中的枚举结构内将双精度型转换为字符串

将int转换为双精度小数点

如何将双精度变量转换为整数变量?

在C ++中将浮点数转换为双精度数并转换回浮点数是否具有相同的值

将文本框值转换为双精度值

如何在c中不舍入的情况下提取双精度值的小数部分

如何使用c将double的小数部分转换为字符串或将double的小数部分转换为整数而不更改确切值

整小时和小数小时将双精度值转换为12小时制时钟格式时间