gpt4 book ai didi

java - 解析问题和数字 "doing math"(一个简单的 java 计算器)

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:01 25 4
gpt4 key购买 nike

我正在尝试获取一个简单的 String 语句并解析它以打印出一个简单的答案。

到目前为止,我不明白为什么我总是得到错误的答案。

举例来说 - 我插入一个带有“2 * 3 * 4 * 5/2/3/2”的字符串。

预期答案是 10,但我收到的答案是 1.5

有人能看到这里的问题吗?我认为这不是操作顺序的情况(我还没有做到这一点)。

public class TestingforExcel {
static String tableholder = "2 * 3 * 4 * 5 / 2 / 3 / 2";
public static void main(String args[]){
String[] fracEquationHolder = tableholder.split(" ",tableholder.length()); // holds the fractions and operator
String operators = "";
double operand;
double operand2;
double answer = 0;

for(int i =0; i <= (fracEquationHolder.length-2); i+=2){
operators = fracEquationHolder[i+1];
operand = Double.parseDouble(fracEquationHolder[i]);
operand2 = Double.parseDouble(fracEquationHolder[i+2]);
if(operators.indexOf("+")>=0){
answer = operand + operand2;
}else if(operators.indexOf("-")>=0){
answer = operand - operand2;
}else if(operators.indexOf("*")>=0){
answer = operand * operand2;
}else if(operators.indexOf("/")>=0){
answer = operand / operand2;
}else
System.out.print(answer+"");
}
System.out.print(answer+"");

}

最佳答案

public class TestingforExcel {
static String tableholder = "2 * 3 * 4 * 5 / 2 / 3 / 2";
public static void main(String args[]){
String[] fracEquationHolder = tableholder.split(" ",tableholder.length()); // holds the fractions and operator
String operators = "";
double operand;
double operand2;
double answer = Double.parseDouble(fracEquationHolder[0]);

for(int i =0; i <= (fracEquationHolder.length-2); i+=2){
operators = fracEquationHolder[i+1];
operand = Double.parseDouble(fracEquationHolder[i]);
operand2 = Double.parseDouble(fracEquationHolder[i+2]);
if(operators.indexOf("+")>=0){
answer += operand2;
}else if(operators.indexOf("-")>=0){
answer -= operand2;
}else if(operators.indexOf("*")>=0){
answer *= operand2;
}else if(operators.indexOf("/")>=0){
answer /= operand2;
}else
System.out.print(answer+"");
}
System.out.print(answer+"");

}

你必须面对的问题:

1- 您得到 1.5,因为这是最后一次操作 (3/2) 您应该使用(答案+=操作数+操作数2)

2-您应该使用最后一次操作的总和而不是操作数

关于java - 解析问题和数字 "doing math"(一个简单的 java 计算器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43269508/

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