在 cpp 中将 int16 转换为 double

Cast int16 to double in cpp

我正在尝试使用 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;

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

从错误来看,myInt16是指向short int的指针。所以只需使用:

double mydouble = *myInt16;

并且short int会自动提升为双倍