ここで「100-50-40」をテストすると、何らかの理由で「10」ではなく「60」が表示されます。「10+20」や「40-20」など、他のすべての組み合わせが機能します。この問題は、複数の数値を続けて減算しようとすると発生します。何か案は?
public double add(String exp){
String left = "";
String right = "";
double leftValue = 0;
double rightValue = 0;
double answer = 0;
for(int i=0;i<exp.length();i++)
{
if(exp.charAt(i)=='+')
{
right = exp.substring(i+1, exp.length());
leftValue = subtract(left);
rightValue = add(right);
answer = leftValue + rightValue;
return answer;
}
else
{
left = left + exp.substring(i,(i+1));
}
} // End for loop
answer = subtract(exp);
return answer;
} // End add method
//guaranteed there are no addition operators in exp
public double subtract(String exp){
String left = "";
String right = "";
double leftValue = 0;
double rightValue = 0;
double answer = 0;
for(int i=0;i<exp.length();i++)
{
if(exp.charAt(i)=='-')
{
right = exp.substring(i+1, exp.length());
leftValue = Double.parseDouble(left);
rightValue = subtract(right);
answer = leftValue - rightValue;
return answer;
}
else
{
left = left + exp.substring(i,(i+1));
}
} // End for loop
answer = Double.parseDouble(exp);
return answer;
}