计算器计算公式

public String testFormula(@RequestParam("formula")String formula,@RequestParam("value")String value) throws ScriptException {
//        String formula = "($ - 4000)*0.00625";
        formula = formula.replace("$", value);
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        Object result = engine.eval(formula);
        String data = String.valueOf(result);
        if (NumberUtils.isNumeric(String.valueOf(result))) {
            BigDecimal bigDecimal = new BigDecimal(result.toString());
            result = bigDecimal.intValue();
            data = result.toString();
        }
        System.out.println("formulaCalculate表达式计算:结果类型:" + result.getClass().getName() + ",计算结果:" + result);
        return data;
    }

你可能感兴趣的:(技术,java)