1.
int value = (array[0] << 24) + (array[1] << 16) + (array[2] << 8) + array[3];
labGetTemp->setText(QString::number(value));
double bct_value = value / 100000.0;//单位
lcdBetestSingleSec->display(QString::number(bct_value,'f'));
2.
int value = (array[0] << 24) + (array[1] << 16) + (array[2] << 8) + array[3];
labGetTemp->setText(QString::number(value));
double bct_value = value / 100000;//单位
lcdBetestSingleSec->display(QString::number(bct_value,'f'));
以上两种写法最后得到的bct_value值不一样,第一种才能得到正确的值,而第二中写法得到的值是整数的
字符串转double型乘以整型,然后赋值给整型,会有所变化。。。
float temp = Voltage.toDouble() * 1000.0;
int value = (int)temp;
这种方式假设0.21字符串,最后得到的value值是21
int value = Voltage.toDouble() * 1000.0;
这种方式假设0.21字符串,最后得到的value值是20