倒数第三行吧???这是想保留一位小数的意思。加0.5是为了四舍五入
比如10.183要保留一位小数,就是先将10.183 * 10 +0.5 = 102.33,然后强制取整,得到102,再转成浮点数后除以10,就是10.2,实现10.183进行四舍五入保留一位小数的效果
这段代码的意思是将变量avgx10乘以10,然后加上0.5,并将结果转换为int类型,最后再除以10并转换为double类型,得到精确到小数点后一位的平均值。例如,如果avgx10的值为3.45,那么经过这段代码操作后,avg的值将为3.5。
乘以10,加0.5,再转int,这是个典型的四舍五入运算
如果是0.05,乘以10是0.5,加0.5是1,除以10变成0.10
如果是0.04,乘以10是0.4,加0.5是0.9,转int变成0了
实际就是四舍五入,通过double跟int来回转换实现,比如avg *10是 1.1那么就是 1.1+0.5 1.6/10 结果再转为int 还是 1,
如果 是 1.5,那就是 1.5+0.5 2/10,结果就是2
根据这个表格可以简单确定至少有6钟状态,考虑到帧头有2个字节,用两个状态来表示,同理校验有2个字节也用2种状态来表示。故一共8种状态,分别是:
为的是四舍五入,加上0.5再取整。