java程序使用int和double

cha*_*nya 5 java double int

我编写了一个简单的Java程序,如下所示:

public class Test {

    public static void main(String[] args) {
        int i1 =2;
        int i2=5;
        double d = 3 + i1/i2 +2;
        System.out.println(d);
    }
}
Run Code Online (Sandbox Code Playgroud)

由于变量d被声明为double我期待这个程序的结果是,5.4但我输出为5.0

请帮助我理解这一点.

Mar*_*oun 13

i1/i2将是0.既然i1i2都是整数.

如果你有int1/int2,如果答案不是一个完整的整数,小数点后面的数字将被删除.在你的情况下,2/5是0.4,所以你会得到0.

你可以施放i1i2double(其他的将被隐式转换)

double d = 3 + (double)i1/i2 +2;


Vin*_*gla 5

i1/i2当转换为int时给出0. ie.为什么你得到5.0.试试这个 :

 public static void main(String args[])
    {
            int i1 =2;
            int i2=5;
            double d = 3 + (double)i1/(double)i2 +2;
            System.out.println(d);
        }
Run Code Online (Sandbox Code Playgroud)