Java 最大打印双精度和整数

Java maximum printing doubles and ints

我有一个 max 函数,它接受 5 个输入并根据用户输入的内容打印最大值。例如:

输入:1 2 3 2.4 0.2

输出:3(整数)

输入:1.7 2 3 4.0 3.2

输出:4.0(双)

我不知道该怎么办。当 4.0 == 4 时,第二种情况会发生错误。我该如何绕过它?

max=(double) i;
    System.out.print(" "+i);
            if (Math.round(max) == max) {
                System.out.print(Math.round(max));
            } else {
                System.out.print(max);
            }

在数字的字符串表示形式上的循环 运行 中,只保留最大的字符串及其解析的双精度值。然后最后只打印最大值对应的字符串。

    double max = -Double.MAX_VALUE;
    String smax = null;
    for (String s: args) {
        double d = Double.parseDouble(s);
        if (d > max) {
            smax = s;
            max = d;
        }
    }
    System.out.println(smax);