是否有任何合理的理由使用" h = Math.min(h,h)"在Java?

时间:2015-01-30 14:51:38

标签: java min

我一直在查看一些源代码,以便更好地了解我们使用的游戏的核心,并编写更可靠,更快速的插件。然后我发现了这段好奇的代码......

public void setMaxH(double amount) {
    super.setMaxH(amount);
    this.h = Math.min(this.h, this.h);
    ...
}

我无法理解代码中存在最后一行的任何原因,使用Math.min,将结果分配给两个参数中使用的相同变量min ...它是否做任何事情?

1 个答案:

答案 0 :(得分:5)

public static double min(double a, double b)“返回两个double值中较小的一个。也就是说,结果是接近负无穷大的值。如果参数具有相同的值,结果是相同的值。如果任一值为NaN,则结果为NaN。与数值比较运算符不同,此方法认为负零严格小于正零。如果一个参数为正零,另一个为负零,结果是负零。“

然后,可能是代码重构中的错误。仔细检查该函数并尝试理解程序员的意图是否可以:

this.h = Math.min(this.h, amount);

将是唯一明智的事情。