Java 浮点数计算不正确的条件逻辑
我有下面的代码,尽管多次尝试让它正确评估,但我无法让它工作。我有办法单独检查每一项(在这种情况下,它可以工作),但我可以写一个看似简单的数学语句,但它不工作,这一事实令人不安 我已经检查了点的值,它们在矩形内,它将返回false。如果我单独检查每一个,它将正确地评估它们,我得到一个真实的值 提前感谢您的时间Java 浮点数计算不正确的条件逻辑,java,android,if-statement,floating-point,rectangles,Java,Android,If Statement,Floating Point,Rectangles,我有下面的代码,尽管多次尝试让它正确评估,但我无法让它工作。我有办法单独检查每一项(在这种情况下,它可以工作),但我可以写一个看似简单的数学语句,但它不工作,这一事实令人不安 我已经检查了点的值,它们在矩形内,它将返回false。如果我单独检查每一个,它将正确地评估它们,我得到一个真实的值 提前感谢您的时间 public static boolean checkIfPointInRectangle(RectF rect, float canvasRotateAngle, float objRot
public static boolean checkIfPointInRectangle(RectF rect, float canvasRotateAngle, float objRotationAngle, int sketchPadHeight, int sketchPadWidth, float pointX, float pointY) {
float[] points = new float[] { pointX, pointY };
// Transform the points to the current rotation
Matrix transform = new Matrix();
transform.setRotate(objRotationAngle - canvasRotateAngle, sketchPadWidth / 2, sketchPadHeight / 2);
transform.mapPoints(points);
if(((rect.left <= points[0]) && (points[0] < rect.right) && (rect.top <= points[1]) && (points[1] < rect.bottom))){
return true;
} else{
return false;
}
}
public static boolean checkIfPointInRectangle(RectF rect、float canvasrotationangle、float objRotationAngle、int sketchPadHeight、int sketchPadWidth、float pointX、float pointY){
浮点[]点=新浮点[]{pointX,pointY};
//将点变换为当前旋转
矩阵变换=新矩阵();
setRotate(对象旋转角度-画布旋转角度,sketchPadWidth/2,sketchPadHeight/2);
变换。映射点(点);
if(((rect.left)不确定我是否理解正确。如果点在矩形内,if语句应该解析为true?如果是,则rect.top
是上界,应该是
pointY?如果说:if(rect.contains(points[0],points[1]){…
?