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
本文探讨了C++中通过位运算实现整数拼接的方法,并对比了不同除法运算精度的影响。同时,分析了字符串转double类型及不同类型间的转换细节。
1366

被折叠的 条评论
为什么被折叠?



