C++ 在cpp中将int16转换为双精度

C++ 在cpp中将int16转换为双精度,c++,qt,casting,integer,double,C++,Qt,Casting,Integer,Double,我试图用mydouble=(double)myInt16将qint16(int16)转换为double我得到 error: invalid cast from type 'qint16* {aka short int*}' to type 'double' 如何将int16转换为double?根据您显示的代码,您没有int。您有一个指向int的指针。取消引用,如下所示: // Assume src points to a short int double mydbl = *src; 从整数到

我试图用
mydouble=(double)myInt16将
qint16
int16
)转换为
double
我得到

error: invalid cast from type 'qint16* {aka short int*}' to type 'double'

如何将
int16
转换为
double

根据您显示的代码,您没有
int
。您有一个指向
int
的指针。取消引用,如下所示:

// Assume src points to a short int
double mydbl = *src;

从整数到双精度的转换将是自动的,但您必须取消对指针的引用。

根据您显示的代码,您没有
int
。您有一个指向
int
的指针。取消引用,如下所示:

// Assume src points to a short int
double mydbl = *src;

从整数到双精度的转换将是自动的,但您必须取消对指针的引用。

从错误中可以看出,
myInt16
是指向
short int
的指针。因此,只需使用:

double mydouble = *myInt16;

并且
short int
将自动升级为double。

从错误中,
myInt16
是指向
short int
的指针。因此,只需使用:

double mydouble = *myInt16;

并且
short int
将自动升级为double。

您似乎正在尝试将指针转换为double。你能提供一些实际的代码吗?你好像想把一个指针转换成一个double。你能提供一些实际的代码吗?我会做一些更像:double mydbl=0.0;如果(src){mydbl=static_cast(*src);}@George,那么要实现同样的目标需要大量的输入。我想这是一个风格的问题,但我认为自动转换有助于提高清晰度@乔治,很明显,你是用符号来支付的。没有其他理由使用您提供的代码。Logicrat,这不是样式的问题@George的代码是一个糟糕的语法膨胀,检查空指针和丢失错误处理都是一个错误。永远不要这样做。@SergeyA我永远不会。我会做一些更像:double mydbl=0.0;如果(src){mydbl=static_cast(*src);}@George,那么要实现同样的目标需要大量的输入。我想这是一个风格的问题,但我认为自动转换有助于提高清晰度@乔治,很明显,你是用符号来支付的。没有其他理由使用您提供的代码。Logicrat,这不是样式的问题@George的代码是一个糟糕的语法膨胀,检查空指针和丢失错误处理都是一个错误。永远不要这样做。@SergeyA我永远不会。