Java中大数除以一个小数可以得到结果,反过来却始终得0,这是为什么呢?

附上代码:

import java.util.List;

public class test01 {

public static List<Integer> ratio(int size, int size2, int size3) {
    //总评/好评/中评
    System.out.println(size);
    System.out.println(size2);
    System.out.println(size3);
    double hao =size2/size;
    System.out.println("好评率:"+hao);
    //??????????????????????????????????
    return null;
}

public static void main(String[] args) {
    List<Integer> list = ratio(100,50,3);
    System.out.println(list);
}

}

因为整型相除,结果是整型,舍去了小数。跟你用浮点型接收没关系。
将其中的数转为浮点型就可以了。

double hao =size2*1.0/size;

import java.util.List;
public class test01 {
public static List<Integer> ratio(int size, int size2, int size3) {
    //总评/好评/中评
    System.out.println(size);
    System.out.println(size2);
    System.out.println(size3);
    double hao =size2*1.0/size;
    System.out.println("好评率:"+hao);
    //??????????????????????????????????
    return null;
}
 
public static void main(String[] args) {
    List<Integer> list = ratio(100,50,3);
    System.out.println(list);
}
}

大数除以小数得到的结果也是去除小数部分之后的,要把其中一个数转成小数才可以
double hao = size2 * 1.0 / size;

数据类型的问题。
整型数据除以整型数据的结果仍然是整型数据。
你要想得到浮点型的结果,要先将除数或者被除数转换成浮点型数据再进行除法运算。
Java 语言不会根据结果的数据类型来自动转换除数或被除数的数据类型。