现在很多计算公式都会存到数据库中,方便计算公式的修改,但是如何拿这个公式去计算,有两种实现方式,第一种就是存储过程,但是不建议别把太多的逻辑放在数据库层,后期扩展麻烦 。第二种方式:例如下面代码
static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
Double a = 100000.0;
Double premrate = 0.14;
String str = "amount / 10000 * premrate"; //从数据库中取出的计算公式
strs = strs.replaceAll("amount", String.valueOf(a));
}
if(strs.contains("premrate")){
strs = strs.replaceAll("premrate", b.toString());
}
System.out.println(jse.eval(strs)); //jse.eval(strs)为计算方法,JDK自带的类可以实现调用JS的功能,可以实现执行字符串中的运算公式的功能。
输出结果为:14.000000000000002