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社區)也有郵件列表,您可能會得到更多答案。 –