如何在控制台中插入三角函数以进一步使用它??例如,sin(x) = 2x + 3log (y)或类似的东西。我需要将表达式输入为字符串,然后将其处理为。但是怎么做呢?
发布于 2015-04-04 12:14:49
看看exp4j
我们在我们的一个项目中广泛地使用了这个库来解决您所面临的完全相同的问题。
Expression e = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)")
.variables("x", "y")
.build()
.setVariable("x", 2.3)
.setVariable("y", 3.14);
double result = e.evaluate();在特定情况下,您可以在控制台中向用户请求以下输入,并使用这些输入构建表达式:
发布于 2015-04-04 13:00:10
试试exp4j。示例(来自链接):
Expression e = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)")
.variables("x", "y")
.build()
.setVariable("x", 2.3)
.setVariable("y", 3.14);
double result = e.evaluate();另一个选择是Javaluator。例如,请参阅链接。
还有EvalX。参见下面的示例(从链接中):
Expression expression = new Expression("1+1/3");
result = expression.eval():
expression.setPrecision(2);
result = expression.eval():我希望这能帮到你!
发布于 2015-12-24 02:04:47
只是一个补充,我最近发现您可以将exp4j ExpressionBuilder分为两部分,并在for循环中向变量添加值,您可以在这个网站https://github.com/fasseg/exp4j/blob/master/src/test/java/net/objecthunter/exp4j/ExpressionBuilderTest.java中找到可能的示例。
ExpressionBuilder e = new ExpressionBuilder("x^2")
.variable("x")
.build();
for(int i = 0; i < 10; i++) {
e.setVariable("x", i);
System.out.println("x^2 = " + e.evaluate());
}https://stackoverflow.com/questions/29446223
复制相似问题