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;
}