介绍一个java的公式计算工具:【JEVAL】
这是个开源项目,主页 http://jeval.sourceforge.net/
主要用于实现计算字符串公式的值,例如excel公式那样。
首先创建计算对象:
Evaluator eval = new Evaluator();
然后计算:
eval.evaluate("3*3-3/(3-5)")
eval.evaluate("6 / 5")
eval.evaluate("3 % 8")
eval.evaluate("((5 * 7) * -7) * 3 + cos(30)")
eval.evaluate("((4 + 3) * -7) * 3 + floor(33)")
他给我们提供了很多功能:
计算
abs ,acos ,asin ,atan ,atan2 ,ceil ,cos ,exp ,floor ,log ,max ,min ,pow ,random ,rint ,round ,sin ,sqrt ,tan
如果觉得不够,还可以自己写运算方法,要implements Function这个类就可以了。
当然,还可以在公式中设置变量:
/* 添加变量到 Evaluator 类实例. */
eva.putVariable("a", "313");
eva.putVariable("b", "310");
eva.putVariable("c", "105");
eva.putVariable("d", "15");
/* 输出变量. */
System.out.println(eva.evaluate("#{a}"));
System.out.println(eva.evaluate("#{b}"));
System.out.println(eva.evaluate("#{c}"));
System.out.println(eva.evaluate("#{d}"));
/* 输出变量. */
eva.evaluate("#{a}-(#{b}-#{c})*(6*#{d}/555)+662")