我的家庭作业是创建一个类的相等方法,在Java中覆盖对象类的相等方法。我已经像下面这样编码了,但是讲师评论说:“双打不能与 ==,! = 相提并论,因为存储并不精确。”那么在这种情况下,我如何相应地编辑代码呢?非常感谢。类游戏设置{
private int firingInterval;
private double moveSpeed;
...
public boolean equals(Object obj) {
//objects are equal if same firingInterval and moveSpeed
GameSettings other;
boolean result = false;
//TODO
other = (GameSettings) obj;
if (obj instanceof GameSettings) {
return (firingInterval == other.getFiringInterval()
&& moveSpeed == other.getMoveSpeed());
} else {
return result;
}
}
正如您的讲师所说,比较double并不仅仅使用equals运算符。例如,可以尝试1不等于1.000。
相反,我们经常通过在两个值之间使用delta来比较double。如果delta相对较小,则这些值将相等。
public static final double EPSILON = 0.0000000001;
public boolean compare(double a, double b) {
return Math.abs(a-b) < EPSILON;
}
我想从有更多经验的人那里得到一些建议,他们在Java中使用原始的双相等。由于可能的舍入错误,对两个双和使用是不够的。 我的问题是: > 使用相对误差计算某个增量值,是否有一个通用(而不是特定于应用程序)的增量值值得推荐?请参阅下面的示例。 下面是一个通用函数,用于检查考虑相对错误的相等性。您建议的值是多少,以捕获简单操作 ,-,/,* 操作中的大部分舍入错误?
本文向大家介绍Java比较两个List的值是否相等的方法,包括了Java比较两个List的值是否相等的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java比较两个List的值是否相等的方法。分享给大家供大家参考。具体如下: 假设两个队列 {1,2,3,4} 和 {4,3,2,1} ,这个方法用来比较这两个队列中包含的值是否相等 希望本文所述对大家的java程序设计有所帮助。
这是一个Java代码,应该测试小数点后的前三位是否相同。而我需要编写这个程序没有一个主方法。
JavaScript 有两种方式判断两个值是否相等。 等于操作符 等于操作符由两个等号组成:== JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。 "" == "0" // false 0 == "" // true 0 == "0"
问题内容: 首先采取klurudge解决方案,使用哨兵方法(必须让您的程序不允许输入哨兵值): 假设您忘记了阻止程序中的哨兵值,用户在B字段中输入了-2147483648,而A为空。上面的代码报告为true,应报告为false,不应报告为true或null。 比较可为空字段上的相等性的最简洁方法是什么?A == B仅应报告true或false,而不管该字段是否可为空。 问题答案: 也许IS [NO
我正在做一些任务工作,我遇到了一个问题。 我收到了这个示例代码: 然而,当我尝试这样做时,会发生以下情况: 有什么想法吗?