在最近工作中遇到需要处理可变的数学算法,我本次使用的是jep来解析字符串公式,来达到应对可变的目的。
1:首先,在使用jep之前先引入需要的jar
<!--jep-->
<dependency>
<groupId>jep</groupId>
<artifactId>jep</artifactId>
<version>2.24</version>
</dependency>
2:测试jep功能代码如下
package com.example.demo.controller;
import org.nfunk.jep.JEP;
public class Test {
public static void main(String[] args) {
JEP jep = new JEP();
// 设置公式
String expression = "(totalAmount * 0.99 - proxy - award ) * 0.3";
// 给变量赋值
jep.addVariable("totalAmount",100);
jep.addVariable("proxy",20);
jep.addVariable("award",10);
// 运算
jep.parseExpression(expression);
// 得出结果
System.out.println(jep.getValue());
}
}
jep.getValue()此方法的返回值为Double 类型的!