【问题标题】:Why does (x – y <= j – k – 1) evaluate to FALSE? [closed]为什么 (x – y <= j – k – 1) 评估为 FALSE? [关闭]
【发布时间】:2020-10-05 12:11:25
【问题描述】:

这里发生了什么?

下面是

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

【问题讨论】:

  • 两者都是真的。你确定你在第一个上得到了错误吗?
  • 二进制系统上的浮点数通常会导致不精确的数字表示。
  • 你试过调试吗?
  • @ryyker 不在这里。

标签: java evaluate


【解决方案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);
    }
}

产量:

-2.200000 <= -2: true

但请注意,您发布的代码包含会导致编译错误的无效 Unicode 字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 2012-03-06
    • 1970-01-01
    • 2012-01-24
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多