我编写了一个简单的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.既然i1和i2都是整数.
如果你有int1/int2,如果答案不是一个完整的整数,小数点后面的数字将被删除.在你的情况下,2/5是0.4,所以你会得到0.
你可以施放i1或i2到double(其他的将被隐式转换)
double d = 3 + (double)i1/i2 +2;
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)
| 归档时间: |
|
| 查看次数: |
25667 次 |
| 最近记录: |