一尘不染

为什么在Java中(360/24)/ 60 = 0…

java

我正在尝试计算(360/24)/ 60当我应该得到0.25时,我一直得到答案0.0

换句话说:我想将360除以24,然后将结果除以60

public class Divide {

    public static void main(String[] args){
      float div = ((360 / 24) / 60);
      System.out.println(div);

    }
}

打印输出:

0.0

这是为什么?我是在做一些真正愚蠢的事情,还是有充分的理由呢?


阅读 397

收藏
2020-03-23

共1个答案

一尘不染

算术中的所有操作数都不是浮点数-因此所有操作均使用整数算术完成,然后转换为浮点数。如果将适当的操作数的类型更改为浮点数,则可以正常工作:

float div = ((360 / 24f) / 60); // div is now 0.25

请注意,如果仅将60更改为浮点数,则最终会将360/24作为整数算术执行-在这种情况下可以这样做,但并不代表我真正的意图。基本上,你需要确保以所需的方式执行算术运算。

2020-03-23