小弟刚学java不久,有个问题请教各位大侠,万分感激~~
定义了一个list,list的每个元素是个map,有如下key:
c1 c2 c3  c4 formula result
其中 formula是个计算公式,list中每个元素的formula可能不同,例如c1/c2+c3 + c4或者c1/(c2+c3 + c4),现在要遍历这个list将每个元素的计算结果写到result的value中,如果计算公式有除法符号,那么如果除数是0,那么除法运算结果就是0,例如如果c2是0,那么c1/c2+c3 + c4结果就是0 + c3+ c4,如果是c2+c3 + c4 =0,那么c1/(c2+c3 + c4)的结果就是0.
请教各位大侠,这个用java如何实现啊,主要是除数为0的判断不太知道怎么实现,因为formula 是不固定的,可能有多个除号,谢谢各位大侠了!

解决方案 »

  1.   

    除0会报异常,把代码块try catch后在catch里面将result赋值为0即可
      

  2.   

    先遍历一下每个formula里面有多少个“/”就知道了,然后在找到“/”后面的那个除数,(先判断除数是不是带括号)
    判断除数是否为0
      

  3.   

    同楼上,不过java只对除数为0(int)验证,不验证double的0.0 public static void main(String[] args){
    double result = 1;
    int b = 10;
    int a = 0; 
    try {
    result = b/a;
    } catch (Exception e) {
    result = 0;
    } System.out.println(result); //0.0
    System.out.println(5/0.0); //Infinity
    }