Java中的方法重载如果为double则返回小数部分,如果为int则移除小数部分



我目前正在通过一本课本学习Java,遇到了一些困难。课本要求我制作一个程序,重载一个方法,基本上用户输入两个数字,如果它们是整数,它会将它们相加,然后除以两,去掉小数点。如果它们是双精度的,它会做同样的事情,只留下小数点后几位。我不知道如何让它显示,如果它是双精度的,它会留下小数点。这是我的密码。除了小数部分外,其他部分都有效。

int x = 0;
int y = 0;
public static void average(double m, double n) {
    System.out.println((m + n) / 2);    
}
public static void average(int l, int p) {
    System.out.println((l + p) / 2);
}
public static void main(String[] args) {
    double x = In.getDouble();
    double y = In.getDouble();
    int i =(int) x;
    int o =(int) y;
    if (x % 1 == 0)
        average(i,o);
    else
        average(x, y);
}

您的平均方法似乎不错。你只需要从你的主要方法调用它们:

    average(i,o);
    average(x, y);

你不需要这个条件。

如果您的输入包含一个奇数和一个偶数,则int版本中的平均值将是int,而double版本中的均值将有一个分数。

根据您的评论,您需要返回平均计算的结果,因此进行以下更改:

public static double average(double m, double n) {
    return (m + n) / 2;    
}
public static int average(int l, int p) {
    return (l + p) / 2;
}

相关内容

最新更新