简易计算器

输入一串数学表达式,包含加减乘除基本四则远算,表达式中可能有括号,设计一个简易计算器,计算表达式的值。
注:表达式中仅由以下字符构成:+、-、*、/、(、)
输入、输出描述
输入:
字符串表达式,如:
(1-2*(3+4))/5
输出:
表达式的计算结果值,按四舍五入结果保留2位小数
Example
输入:
(1+2)*3-4/5
输出:
8.2
直接使用JavaScript的eval()函数,注意需要对结果进行强制转换,并做四舍五入保留两位小数的处理。
代码:
import java.util.*;
import java.math.BigDecimal;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Main {
    public double solution(String input) {
      ScriptEngineManager manager = new ScriptEngineManager();
      ScriptEngine engine = manager.getEngineByName("js");
      Object temp = 0;
      try{
        temp = engine.eval(input);
      }catch(ScriptException e){
        e.printStackTrace();
      }
      double temp1 = Double.valueOf(temp.toString());
      BigDecimal btemp = new BigDecimal(temp1);
      double result = btemp.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
      return result;
    }
}
一个创业中的苦逼程序员
评论专区

隐藏