Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇不同情况司_Java_Integer_Division - Fatal编程技术网

Java 爪哇不同情况司

Java 爪哇不同情况司,java,integer,division,Java,Integer,Division,如何在Java中划分两个数字,并在两种不同的情况下获得不同的类型: 如果可能,获取int(例如6/2) 否则,获取浮动(6/4) 代码如下: int a; int b; float div = a / b; a和b是整数。(例如,如果可能得到2,我不想得到2.0)尝试将浮点值转换为int并比较结果,如果结果相同,则打印整数,否则,使用浮点值: public class Main { public static void main(String[] args) { i

如何在Java中划分两个数字,并在两种不同的情况下获得不同的类型:

  • 如果可能,获取int(例如6/2)
  • 否则,获取浮动(6/4)
代码如下:

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

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

尝试将
浮点值
转换为
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
1.5

如果除法是整数编号的,您也可以使用模运算符进行检查

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)强制转换为浮点,以获得表示分数结果的十进制数

输出:

2
1.5
1.5

如果您事先不知道除法是否“可能”,则始终需要一个浮点。如果您确实知道,那么在您之前展示的两种方式中进行选择(尽管您可能需要修复浮点版本…)。如果这不是您需要的答案,那么您需要澄清您的问题。请对可能需要浮点结果(目前使用浮点方法)但可能不需要并且可以从使用int方法中受益的代码进行分析。我无法想象和认为这可能是不可能的。这里描述的问题很容易造成这种情况