1

Javax ScriptEngine 和 JEval 的工作方式类似,您输入一个字符串并将其发送给进行评估,它会返回结果:

在 ScriptEngine 中(在 JEval 中几乎相同):

System.out.println(engine.eval("2*3+4"));

将导致:

10.0

但是当我尝试使它成为指数时:

System.out.println(engine.eval("2^3+4"));

将导致:

5.0

但它确实应该导致 12 (2^3 = 8, 8+4=12),所以我的问题是如何设置它,以使整个等式的字符串将评估支持指数级的,结果正确吗?

我应该使用另一个库吗?

4

1 回答 1

4

^是 XOR 操作数,您的字符串表示2 XOR 3 + 4,实际上计算结果为1 + 4

你必须使用

Math.pow(2,3) + 4

这是我的代码:

System.out.println(engine.eval("Math.pow(2,3) + 4"));

输出:

12.0
于 2013-09-16T20:07:00.860 回答