现有一个字符串的计算公式,如:“2000+700/3-300*2+6*100”能有什么办法直接得出计算值,保留两位小数

解决方案 »

  1.   

    <script>
    eval("var value = " + "2000+700/3-300*2+6*100");
    value = parseInt(value*100, 10)/100;
    alert(value);
    </script>
      

  2.   

    在数字类型中不是有一个toFixed(2)的方法吗?用这个方法就可以了。
      

  3.   

    JEXL
    Expression e = ExpressionFactory.createExpression("x+y");
    JexlContext jc = JexlHelper.createContext();
    jc.getVars().put("x", 2);
    jc.getVars().put("y", 6);
    Object result = e.evaluate(jc);
    System.out.println(result);


    Expression e1 = ExpressionFactory.createExpression("4+5*7");
    System.out.println(e1.evaluate(null));
      

  4.   


    DecimalFormat df=new DecimalFormat("###,###,##0.00");
    out.println(df.format(2000+700/3-300*2+6*100));