有没有办法显示Java中计算的逐步计算?
Is there a way to show the step by step computation of a calculation in Java?
我目前正在构建一个 Android 应用程序,它有一个计算器,不仅可以显示结果,还可以显示它是如何得出该结果的?
是否有任何库或任何方法可以显示下面代码结果的逐步计算?
int a = 5;
int b = 6
int c = 7;
int d = 8;
int result = a + (b * c) / d;
编辑:顺便说一句,这是一个物理计算器,所以我有很多公式。我正在使用 exp4j 将字符串公式解析为表达式。这是一个示例
//For formula velocity = (finalVelocity - initialVelocity) / time
String formula1 = "(finalVelocity - initialVelocity) / time";
Double result1 = new ExpressionBuilder(formula)
.variables("finalVelocity", "initialVelocity", "time")
.build()
.setVariable("finalVelocity", 4);
.setVariable("initialVelocity", 2);
.setVariable("time", 2)
.evaluate();
//Sample Output
//velocity = (4 - 2) / 2
//velocity = 2 /2
//velocity = 1
//For formula finalVelocity = (velocity * time) + initialVelocity
String formula2 = "(velocity * time) + initialVelocity";
Double result12 = new ExpressionBuilder(formula)
.variables("velocity", "time" "initialVelocity")
.build()
.setVariable("velocity", 4);
.setVariable("time", 2)
.setVariable("initialVelocity", 0)
.evaluate();
//Sample Output
//finalVelocity = (4 * 2) + 0
//finalVelocity = 8 + 0
//finalVelocity = 8
对于许多公式,我试图消除每个公式的每个步骤的打印。我正在尝试找到一种方法来获得可以打印任何公式的步骤的函数。
考虑到您将使用 BODMAS 来解决该问题,您可以考虑简单地打印每个步骤:
int a = 5;
int b = 6;
int c = 7;
int d = 8;
int ans = (b * c);
System.out.println(ans)
ans /= d;
System.out.println(ans)
ans += a;
System.out.println(ans)
为此,您可以构建一个函数,该函数首先搜索括号并根据 BODMAS 求解方程(首先是括号,然后是除法,然后是乘法,然后是加法,最后是减法) .
考虑到您将方程作为字符串,您首先搜索 (),然后求解 /
并打印答案,然后是 *
、+
和 -
.
我目前正在构建一个 Android 应用程序,它有一个计算器,不仅可以显示结果,还可以显示它是如何得出该结果的?
是否有任何库或任何方法可以显示下面代码结果的逐步计算?
int a = 5;
int b = 6
int c = 7;
int d = 8;
int result = a + (b * c) / d;
编辑:顺便说一句,这是一个物理计算器,所以我有很多公式。我正在使用 exp4j 将字符串公式解析为表达式。这是一个示例
//For formula velocity = (finalVelocity - initialVelocity) / time
String formula1 = "(finalVelocity - initialVelocity) / time";
Double result1 = new ExpressionBuilder(formula)
.variables("finalVelocity", "initialVelocity", "time")
.build()
.setVariable("finalVelocity", 4);
.setVariable("initialVelocity", 2);
.setVariable("time", 2)
.evaluate();
//Sample Output
//velocity = (4 - 2) / 2
//velocity = 2 /2
//velocity = 1
//For formula finalVelocity = (velocity * time) + initialVelocity
String formula2 = "(velocity * time) + initialVelocity";
Double result12 = new ExpressionBuilder(formula)
.variables("velocity", "time" "initialVelocity")
.build()
.setVariable("velocity", 4);
.setVariable("time", 2)
.setVariable("initialVelocity", 0)
.evaluate();
//Sample Output
//finalVelocity = (4 * 2) + 0
//finalVelocity = 8 + 0
//finalVelocity = 8
对于许多公式,我试图消除每个公式的每个步骤的打印。我正在尝试找到一种方法来获得可以打印任何公式的步骤的函数。
考虑到您将使用 BODMAS 来解决该问题,您可以考虑简单地打印每个步骤:
int a = 5;
int b = 6;
int c = 7;
int d = 8;
int ans = (b * c);
System.out.println(ans)
ans /= d;
System.out.println(ans)
ans += a;
System.out.println(ans)
为此,您可以构建一个函数,该函数首先搜索括号并根据 BODMAS 求解方程(首先是括号,然后是除法,然后是乘法,然后是加法,最后是减法) .
考虑到您将方程作为字符串,您首先搜索 (),然后求解 /
并打印答案,然后是 *
、+
和 -
.