Java整数除法结果为double?

时间:2014-11-12 07:25:13

标签: java integer-division

我目前有这段代码:

    int kills = 1;
    int deaths = 2;

    double kdr = 0;

    if(kills > 0 && deaths == 0) {
        kdr = kills;
    } else if(kills > 0 && deaths > 0){
        kdr = kills/deaths;
    }

    System.out.println(kdr);

您可以对其进行测试here

为什么输出为0.00而不是0.5?

2 个答案:

答案 0 :(得分:3)

如果kills/deaths< 1,你得到0,因为整数除法的输出是整数。然后将此0转换为0.0以适合您存储它的double变量。

为了获得非整数结果,您必须将其中一个数字转换为加倍:

 kdr = (double)kills/deaths;

答案 1 :(得分:1)

因为您的输入值是整数。如果你将其中一个投射到一个双倍,你会得到预期的结果:

 kdr = (double)kills/deaths;