Java不同情况划分

问题描述

如何在Java中将两个数字相除并在两种不同情况下获得不同的类型:

  • 尽可能获取整数(例如6/2)
  • 否则,获取float(6/4)

这样的代码

int a;
int b;
float div = a / b;

a和b是整数。 (例如,如果可能得到2,我不想得到2.0)

解决方法

您也可以只用模运算符检查除数是否为整数-编号。

int a = 6;
int b = 4;
if(a % b == 0) {
    System.out.print(a/b);
}
else  {
    System.out.print((float)a/b);
}

如果除法a%b等于0,则该除法是整数。如果不是,则为小数,您可以将操作数(a或b)之一强制转换为浮点数,以获取表示小数结果的小数。

输出:

1.5
,

尝试将float强制转换为int并比较结果,如果相同,则输出整数,否则使用浮点数:

public class Main {
    public static void main(String[] args) {
        int a = 6;
        int b = 3;
        getDivisionResult(a,b);
        b = 4;
        getDivisionResult(a,b);
    }
    private static void getDivisionResult(int a,int b) {
        float div = (float) a / b;
        int rounded = (int) div;
        if(rounded == div)
            System.out.println(rounded);
        else
            System.out.println(div);
    }
}

输出:

2
1.5