我正在测试浮点值

    public boolean deviceInGoodPosition() {
    if (filteredSampling.fmagnet_x > 0.0 && filteredSampling.fmagnet_y < 0.0 &&  filteredSampling.fmagnet_y > 0.0 ) {
        return true;
    } else {
        System.out.println("fmagnet_x " +  filteredSampling.fmagnet_x + " > 0.0  AND  fmagnet_y " + filteredSampling.fmagnet_y  + " < 0.0 AND  fmagnet_z " + filteredSampling.fmagnet_z + " > 0.0");
        return false;
    }
}


但是运行它,并以正确的值返回false ..我打印出要检查的值

Starting analyzeThread
analyzeThread requesting calibration
fmagnet_x 19.119263 > 0.0  AND  fmagnet_y -44.880676 < 0.0 AND  fmagnet_z 3.5110474 > 0.0
 Wrong device positioning

最佳答案

您的问题是filteredSampling.fmagnet_y < 0.0 && filteredSampling.fmagnet_y > 0.0永远不会返回true,因为数字不能同时为正数和负数。

根据您的打印语句,我假设您的意思是最后一部分是filteredSampling.fmagnet_z > 0.0(注意z而不是y)。

07-24 09:45