Java 为什么(x&èx2013;y<;=j&èx2013;k–;1)的计算结果为FALSE?

Java 为什么(x&èx2013;y<;=j&èx2013;k–;1)的计算结果为FALSE?,java,evaluate,Java,Evaluate,这里发生了什么 以下是 int i = 1, j = 2, k = 3; double x = 5.5, y = 7.7; x - y <= j - k - 1 FALSE -i + 5 * j >= k + 1 TRUE inti=1,j=2,k=3; 双x=5.5,y=7.7; x-y=k+1真值 它(显然)不会: class Test { public static void main(String[] args) { int i = 1,

这里发生了什么

以下是

int i = 1, j = 2, k = 3;  
double x = 5.5, y = 7.7;

x - y <= j - k - 1 FALSE

-i + 5 * j >= k + 1 TRUE
inti=1,j=2,k=3;
双x=5.5,y=7.7;
x-y=k+1真值
它(显然)不会:

class Test {
    public static void main(String[] args)  {
        int i = 1, j = 2, k = 3;  
        double x = 5.5, y = 7.7;
 
        System.err.printf("%f <= %d: %s\n", x - y, j - k - 1, x - y <= j - k - 1);
    }
}
类测试{
公共静态void main(字符串[]args){
int i=1,j=2,k=3;
双x=5.5,y=7.7;

System.err.printf(“%f两者均为真。您确定第一个值为假吗?二进制中的浮点数通常会导致不精确的数字表示。是否尝试调试它?@ryker不在此处。
-2.200000 <= -2: true