java通过javascript引擎调用javascript数学函数实现计算
2018-06-07 14:36
911 查看
/** * 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引擎进行调试:
相关文章推荐
- Android在使用WebView时,通过Javascript调用JAVA函数
- Servlet中实现通过Rhino在Java中调用JavaScript
- Android在使用WebView时,通过Javascript调用JAVA函数
- 存储过程调用,java中通过bboss persistent实现数据库存储过程的调用(命名变量绑定)
- 通过IE提供的window.external来再javascript中调用winform中的函数
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用
- 常用效果的实现(Javascript的子父页访问、函数调用)
- javascript中用函数属性实现函数调用计数
- 通过JNI实现Java和C++的相互调用(转)
- 通过JNI实现Java和C++的相互调用(转)
- java中的数学计算函数
- 通过JNI实现Java和C++的相互调用(转)
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- 通过JNI实现Java和C++的相互调用(转)
- javascript的函数调用继承实现
- javascript实现像java、c#之类的sleep暂停的函数功能
- 请教:在java中如何实现线程的函数互斥调用,用synchronized好像实现不了
- 通过IE提供的window.external来再javascript中调用winform中的函数
- 通过JNI实现Java和C++的相互调用(转)
- 调用存储过程,java中通过bboss persistent实现数据库存储过程的调用(位置变量绑定)