现有字符串形式的算术表达式,求计算其值。
String str1 = "2000+600/3-300*2";
String str2 = "2000+600.389895334/2-300*2+6*100";
求解方法如下:
/**
* 读取公式,返回结果。
* @param express:算术公式
* @return 结果字符串(保留两位小数)
*/
public double resolve(String express){
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("javascript");
double myPay = 0.0;
try {
myPay = (Double) engine.eval(express);
} catch (ScriptException e) {
System.out.println("初始化失败!");
}
//保留最后两位小数
BigDecimal bigDecimal = new BigDecimal(myPay);
myPay = bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
return myPay;
}