java - java中的数学计算

标签 java c++ math calculator

我正在尝试用 Java 开发一个高级数学表达式计算器。我的目标是计算器可以确定如下表达式:

2 * 6^( log(123) - sin(7)^cos(2) )

lim( (5x^2) / x , x -> 1)
.
.
.

在 Java 或 C++ 中有什么(默认函数、外部库)吗?

最佳答案

你可以这样做......

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;

public class Test {
  public static void main(String[] args) throws Exception{
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("JavaScript");
    String foo = "2 * 6^( log(123) - sin(7)^cos(2) )";
    System.out.println(engine.eval(foo));
    } 
}

此外,如果你想解决限制,你总是可以使用 API . 您可以使用该 api 的正确语法发送请求,这将为您提供 结果你可以解析。然而,这更难编程,而且 API 通常不是免费的。 另一种选择是自己计算限制,我不知道该 API 或标准 API Java 函数。

如果您真的想从头开始并重新发明 weel,我建议您构建自己的 eval 函数。这是一个很好的起点:Java/c++ example .

关于java - java中的数学计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27822107/

相关文章:

java - 尝试从 Android 应用程序获取 TokenSilentAsync

C++ 查找依赖文件

algorithm - Big-O 表示法和多项式?

javascript - 如何使 JavaScript Math.random 重复?

javascript - 倒比例

java - 对于这种数学计算有更好的解决方案吗? ( java )

java - 2个字符串的java中.equals的时间复杂度是多少?

c++ - 如何从标量初始化AltiVec寄存器而不使用复合文字

JavaFX - 如何将字符串从 'webEngine createWebEngine(Stage stage)' 显示到其他类中的 Pane

java - 从任何地方使用Java Runtime执行cl命令