我正在测试浮点值
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)。