参考jep官网:http://www.singularsys.com/jep/
Jep Java只用几行代码解析和评估数学表达式。此程序包允许您的用户输入公式作为字符串,并立即对其进行评估。Jep支持用户定义的变量,常量和函数。包括许多常见的数学函数和常数。 |
那么啰嗦,说白了就是支持自定义函数,传入数据,计算出结果,而且很快,精度自己定义.
代码演示:
<dependency>
<groupId>org.scijava</groupId>
<artifactId>jep</artifactId>
<version>2.4.2</version>
</dependency>
public static void main(String[] args) {
//方式一
/* //一个数学表达式
JEP jep = new JEP();
//给变量赋值
String exp = "((a+b)*(c+b))/(c+a)/b";
jep.addVariable("a", 16);
jep.addVariable("b", 5);
jep.addVariable("c", 66);
try { //执行
jep.parseExpression(exp);
Object result = jep.getValue();
System.out.println("计算结果: " + result);
} catch (Exception e) {
System.out.println("An error occured: " + e.getMessage());
}*/
//方式二
try {
String exp = "((a+b)*(c+b))/(c+a)/b";
JEP jep = new JEP();
jep.addVariable("a", 16);
jep.addVariable("b", 5);
jep.addVariable("c", 66);
Node parse = jep.parse(exp);
Object evaluate = jep.evaluate(parse);
System.out.println(evaluate);
} catch (ParseException e) {
e.printStackTrace();
}
}
计算结果:(计算器算了是对的.好了,jep没你事了).