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

 

问题描述:

我正在尝试计算(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

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


 

第 1 个答案:

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

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

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


考虑一些可能引发检查异常(类型为的异常Exception)的代码。catch当然,你的代码是例外。你也不仅可以吞下该异常,还可以通过你的代码通过用户界面以某种方式向用户报告该异常。也许在日志文件中,或使 ...