我尝试从modbus转换值。 设备显示“-1.0”,退色值为65535(uint16)。 我现在尝试将此值重新转换为double。 我已经尝试过不同的演员阵容。 这让我总是65353.00 :(将double转换为uint和retour
我们如何转换成双重否定的uint值?
typedef unsigned short uint16;
int main() {
double dRmSP = -1.0; //-1.0000 ok
uint16 tSP = static_cast<uint16>(dRmSP); // = 65535 ok
// retour
double _dRmSP = static_cast<double>(tSP); // = 65535.0000 why??
// try
double _dRmSP_ = static_cast<double>(static_cast<int>(tSP)); // =65535.0000 why??
return 0;
}
做最好的解释步骤如何从一个“负”单元值原路折回RETOUR。谢谢! –