You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中Polygon比较的equals方法返回结果异常问题

问题:Polygon类equals方法返回结果不符合预期

我需要实现输入Polygon对象与默认Polygon类属性值的比较,其他数学计算均正常且能正常打印,但equals方法的boolean返回结果始终不符合预期。我的判定逻辑是:当默认多边形的边数、边长与输入多边形的边数、边长均匹配(边长差值小于指定epsilon)时,判定两者相等。

实现equals逻辑的代码:

public boolean equals(Polygon polygon){
    boolean areEqual = false;
    double episilon = 0.0000001d;
    double difference = Math.abs((DEFAULT_SIDE_LENGTH) - length);
    if ((difference < episilon) && (DEFAULT_SIDE_COUNT == sides))
        areEqual = true;
    return areEqual;
}

打印结果的代码:

public static void printIfEqual(Polygon poly1, Polygon poly2) {
    System.out.println("Before checking equals(), print polygons");
    System.out.println("poly1: " + poly1);
    System.out.println("poly2: " + poly2);
    if (poly1.equals(poly2))
        System.out.println("Polygons are equal.");
    else
        System.out.println("Polygons are NOT equal.");        
}

当前代码运行结果与预期结果不符(仅boolean返回值存在差异),已尝试调试但未解决问题,附上当前结果图与预期结果图。

内容的提问来源于stack exchange,提问作者GrasshopperAtBest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:02:46