gpt4 book ai didi

java - Java中计算数学表达式的方法

转载 作者:IT老高 更新时间:2023-10-28 20:33:51 29 4
gpt4 key购买 nike

在我的一个项目中,我想添加一个用户可以在公式中提供的功能,例如

sin (x + pi)/2 + 1

我在我的 Java 应用程序中使用的

/**
* The formula provided by the user
*/
private String formula; // = "sin (x + pi)/2 + 1"

/*
* Evaluates the formula and computes the result by using the
* given value for x
*/
public double calc(double x) {
Formula f = new Formula(formula);
f.setVar("x", x);
return f.calc();
// or something similar
}

如何计算数学表达式?

最佳答案

还有exp4j , 基于 Dijkstra's Shunting Yard 的表达式评估器.它可以在 Apache 许可证 2.0 下免费提供和再分发,大小只有 25KB 左右,而且非常易于使用:

Calculable calc = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)")
.withVariable("x", varX)
.withVariable("y", varY)
.build()
double result1=calc.calculate();

使用较新的 API 版本时,例如 0.4.8:

Expression calc = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)")
.variable("x", x)
.variable("y", y)
.build();
double result1 = calc.evaluate();

exp4j 中还有一个使用自定义函数的工具。 .

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

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com