私は3つのクラスを持つ式ツリーを作成しました(1つは式を評価し、それの接尾辞と中置記法(Expr)を与えるツリーの構造用、もう1つは式からツリーを構築するだけです(stackを使用)。 ..) もう 1 つは私のメインである EvalExpr です) しかし、式 "( 2 + 3.5 )" のエラーが発生し、それがどこから来たのかわかりません。次のようなエラー:
Exception in thread "main" java.lang.NumberFormatException: For input string: "3.5"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at exprTree.Expr.eval(Expr.java:68)
at exprTree.Expr.eval(Expr.java:74)
at exprTree.Expr.eval(Expr.java:73)
at exprTree.Expr.eval(Expr.java:73)
at EvalExpr.main(EvalExpr.java:42)
そして、私のメソッド eval() は次のようになります:
public double eval()
{
double leftOperand = 0;
double rightOperand = 0;
String operator;
if(this == null)
return 0;
else if(rightChild == null && leftChild == null)
return Double.parseDouble(value);
else
{
operator = value;
leftOperand = leftChild.eval();
rightOperand = rightChild.eval();
return calc(operator, leftOperand, rightOperand);
}
}
この不思議なエラーを見つけるのを手伝ってくれる人はいますか? ありがとう