简体   繁体   English

如何评估Java中的数学表达式?

[英]How to evaluate the mathematical expression in Java?

I need to write a Java program to solve similar mathematical expressions like below. 我需要编写一个Java程序来解决类似如下的数学表达式。 I am using ScriptEngineManager, but ScriptEngineManager is not a requirement; 我正在使用ScriptEngineManager,但不是必需的ScriptEngineManager; it could be any anything to solve my problem. 它可以解决我的问题。

Let's take an example: exp = 100*(2**4) so answer should be 1600 but I am getting 204. 让我们举个例子: exp = 100*(2**4)因此答案应该是1600,但我得到204。

Consider ** as the power operator for example: (2**4 =>Math.pow(2,4)); **运算符,例如: (2**4 =>Math.pow(2,4));

Replacing ** with ^ is simply not working (getting wrong answer as shown above), without power operator ( ** ) everything is working fine, consider this example: (6*(4/2)+3*1) = answer 15 as expected. ^代替**根本不起作用(如上所示,得到了错误的答案),如果没有电源操作符( ** ),一切都很好,请考虑以下示例: (6*(4/2)+3*1) =答案15如预期的那样。 so I just need to handle ** . 所以我只需要处理**

Flow of Program: 程序流程:

  1. User take an input using input scanner. 用户使用输入扫描仪进行输入。
  2. Get calculated value from input expression. 从输入表达式获取计算值。

To evaluate power in java, please use Math.pow method: 要评估Java的性能,请使用Math.pow方法:

var exp = 100 * Math.pow(2, 4);

There is no ** operator in java. java中没有**运算符。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM