java调用js计算函数_java通过javascript引擎调用javascript数学函数实现计算

/**

* java通过javascript引擎调用javascript数学函数实现计算

* 通过字符串格式的公式获取公式值

*

* @param inputFormula

* @return

*/

public static String retCalculatedValueFromString(String inputFormula) {

ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");

String str = "0";

String formula = new String(inputFormula);

try {

if (StringisNotEmpty(formula)) {

formula = formula.replaceAll("--", "+");

formula = formula.replaceAll("\\+\\+", "+");

//计算

String tmp = retAString(jse.eval(formula));

if (!"NaN".equals(tmp) && !"Infinity".equals(tmp) && !"-Infinity".equals(tmp)) {

BigDecimal db = new BigDecimal(tmp);// 消除科学计数法

str = db.toPlainString();

}

}

} catch (ScriptException e) {

System.out.println("There is a problem with the formula format! formula:" + formula);

e.printStackTrace();

}

return str;

}

利用Chrome浏览器调用javascript引擎进行调试:

8be9497253cb0f7af7bddfd5daf0fcb5.png


版权声明:本文为weixin_30045711原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。