Web课程作业收获与记录——超low的大数简单四则运算
2020-04-23 09:11
267 查看
介绍
根据老师发布的Web课程作业深入研究的一点关于大数处理的知识,主要是前台做一个四则运算器,交由后台处理并返回结果。low我是知道的,所以,轻喷,怕疼。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=utf-8");//设置response响应文本编码格式,用于服务器端文本编码 double n1 = Double.parseDouble(request.getParameter("num1")); String ope = request.getParameter("ope"); double n2 = Double.parseDouble(request.getParameter("num2")); double res = 0; //转换为大数对象,并使用setScale(int newScale, RoundingMode roundingMode)函数 //其中, //newScale:表示要保留的位数 //roundingMode:表示舍入方法,RoundingMode.HALF_UP表示我们熟悉的四舍五入方法 BigDecimal num1 = new BigDecimal(n1).setScale(4,RoundingMode.HALF_UP); BigDecimal num2 = new BigDecimal(n2).setScale(4,RoundingMode.HALF_UP); int state = 1; if(ope.equals("+")) { res = num1.add(num2).doubleValue();//大数计算会产生多余小数位,可以转换为double类型去掉多余位数 }else if(ope.equals("-")) { res = num1.subtract(num2).doubleValue(); }else if(ope.equals("*")) { res = num1.multiply(num2).doubleValue(); }else if(ope.equals("/")) { if(num2.compareTo(BigDecimal.ZERO) == 0) {//大数对象和零比较的方式 state = -1; }else { //大数相除在碰到除不尽的时候会抛出异常,需要添加参数RoundingMode.CEILING //如果 BigDecimal 是正的,则做 ROUND_UP 操作;如果为负,则做 ROUND_DOWN 操作。 //注函数原型:divide(BigDecimal divisor, int scale, RoundingMode roundingMode) res = num1.divide(num2,RoundingMode.CEILING).doubleValue(); } } if(state == -1) { PrintWriter out=response.getWriter(); out.println("错误:除数不能为0!"); }else { System.out.println(num1 + ope + num2 + "=" + res); request.setAttribute("res", res); request.getRequestDispatcher("work321.jsp").forward(request, response); } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Web课程作业收获与记录——超low的购物车作业
- JSON Web Token简单研究记录
- 简单记录一下MOCTF的三道web题
- 关于MATLAB入门的简单记录10 Matlab的数值运算
- (作业)WKWebView实现简单的浏览器
- 实践作业4:Web测试实践(小组作业)每日任务记录4
- 实践作业4:Web测试实践(小组作业)每日任务记录5
- 实践作业4:Web测试实践(小组作业)每日任务记录5
- 作业04: 开始较简单的数学运算。
- 作业七-四则运算与简单工厂模式初步结合
- 第六次作业——利用MFC实现计算器图形界面以及简单四则运算表达式批处理
- 关于MATLAB入门的简单记录11 符号运算
- 实践作业4:Web测试实践(小组作业)每日任务记录2
- 当简单的计算遇上了大数,其实大数运算也很简单
- 【IMWeb训练营作业】vuejs简单任务列表实现
- 小甲鱼视频课程作业——创建一个简单的类
- 记录我的第一个用ssh框架开发的web项目——实现简单的登录注册以及增删查改(一)
- 最简单的Spring MVC Web程序记录
- centos7简单搭建nginx+uwsgi+web.py的Python web环境(记录)
- java大数乘法的简单实现 浮点数乘法运算