有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中使用“h=Math.min(h,h)”有什么逻辑原因吗?

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

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

我无法用数学来理解代码中存在这最后一行的任何原因。min,将结果分配给两个参数中使用的同一个变量,以使min。。。它有什么用吗


共 (1) 个答案

  1. # 1 楼答案

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

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

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

    这是唯一明智的选择