2
我使用JEXL库来计算具有不同参数的数学表达式(例如y = 2x + a^2-4 * a * x其中(x = 1 & a = 3),(x = 5 & a = -15)等)。它适用于简单的表达式,但是当我开始使用更多的硬性表达式时 - 它不起作用。下面是代码正常工作:为什么jexl calc算术错误
JexlEngine jexl = new JexlEngine();
Expression func = jexl.createExpression("x1+x2");
MapContext mc = new MapContext();
mc.set("x1", 2);
mc.set("x2", 1);
System.out.println(func.evaluate(mc)); // prints "3" - GOOD ANSWER!
但是这一个打印错误的答案:
JexlEngine jexl = new JexlEngine();
Expression func = jexl.createExpression("(x1-2)^4+(x1-2*x2)^2");
MapContext mc = new MapContext();
mc.set("x1", 2);
mc.set("x2", 1);
System.out.println(func.evaluate(mc)); // prints "6" - WRONG ANSWER!
我做什么了?
你是对的!谢谢!那么,我如何在JEXL中实现Math.pow()?或者我应该使用另一个库用于我的目的? – dizpers
@dizpers我从来没有用过JEXL,所以我不能帮你。我建议在互联网上寻找例子。他们(JEXL社区)也有邮件列表,您可能会得到更多答案。 –