软件园学生在线

  • {{ item.name }}
  • 2023试用期

登录与注册

后端一 张有志

  • Zhangyz001
  • 2023-10-29
  • 0

简单的四则运算

(可能会有失误且不少o.0)

产品说明

(其实不需要说明((()

使用说明

(简单明了)
1.首先运行后端
2.然后打开前端网站http://localhost:63342/Homework1/templates/%E8%AE%A1%E7%AE%97%E5%99%A8.html?_ijt=rvjo41u5pndjdbmijpt9o6joua&_ij_reload=RELOAD_ON_SAVE
3.进入后根据自己的需要选择算法
4.依次输入第一和第二个数字,然后点击提交就可以得出你所求的结果。

特殊情况

1.0.1+0。2=0.30004的情况:运用Bigdecimal进行了精确运算;
2.除法运算分母不能为零的情况:运用if语句进行了判断,若分母为零则会输出分母不能为零;
3.支持小数运算:运用了double
4.判断数据类型是否有误:修改了一下前端的配置(学长亲口说我们后端要做到前后端全能)虽然我后端还不是很精通(((
5.解决数据溢出问题:可以先用float类型赋值然后扩大到double类型,由于double范围比float大,所以就可以避免数据溢出。

学习历程

(复杂坎坷伤脑筋)
1.首先再次观看了学长的讲解录播;
2.查阅了为什么会出现计算不精确的问题以及Bigdecimal的相关知识;
3.查阅了如何修改前端页面及一些简单的应用场景,例如如何只输入数字和小数点;
4.熟练掌握了divide的用法,divide包括三个参数:第一个参数是除数,第二个参数是小数位数scale(可以不写,但其默认位数为小数点后一位),第三个参数是舍入模式;
5.查阅了如何解决数据溢出问题。
Controller代码

package com.example.homework1.controller;

import com.example.homework1.service.HomeworkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.regex.Pattern;

@RestController
@RequestMapping("/math")
public class HomeworkController {
    @Autowired
    HomeworkService homeworkService;
    @GetMapping("/add")

    public Object add(@RequestParam double a, @RequestParam double b) {

        return  homeworkService.add( a, b);
    }
    @GetMapping("/subtract")
    public Object subtract(@RequestParam double a, @RequestParam double b){

        return homeworkService.subtract( a, b );
    }
    @GetMapping("/multiply")
    public Object multiply(@RequestParam double a, @RequestParam double b){

        return homeworkService.multiply( a,b );
    }
    @GetMapping("/divide")
    public Object divide(@RequestParam double a, @RequestParam double b){

        return  homeworkService.divide(a, b);
    }

}

Service代码

package com.example.homework1.service;

import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.math.RoundingMode;

import static java.math.RoundingMode.HALF_UP;

@Service
public class HomeworkService {

    public Object add(double a, double b) {
        BigDecimal c = BigDecimal.valueOf(a);
        BigDecimal d = BigDecimal.valueOf(b);
        return c.add(d);
    }

    public Object subtract(double a, double b) {

        BigDecimal c = BigDecimal.valueOf(a);
        BigDecimal d = BigDecimal.valueOf(b);
        return c.subtract(d);
    }

    public Object multiply(double a, double b) {
        BigDecimal c = BigDecimal.valueOf(a);
        BigDecimal d = BigDecimal.valueOf(b);
        return c.multiply(d);

    }

    public Object divide(double a, double b) {
        BigDecimal c = BigDecimal.valueOf(a);
        BigDecimal d = BigDecimal.valueOf(b);
        if (b==0){
            return "分母不能为零";}
        else{
            // 设置除法的小数位数为10
            int scale = 10;
            // 使用divide()函数进行除法计算
            BigDecimal result = c.divide(d, scale,HALF_UP);
            return result;
        }

    }
}

前端html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>计算器</title>
</head>
<body>
<h2>加法</h2>
<form action="http://localhost:8080/math/add"method="get">
    第一个数字:<input type="text" class="txt" name="a" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')"><br>
    第二个数字:<input type="text" class="txt" name="b" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')"><br>
    <input type="submit" value="提交">
</form>
</body>
<body>
<h2>减法</h2>
<form action="http://localhost:8080/math/subtract"method="get">
    第一个数字:<input type="text" class="txt" name="a" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')"><br>
    第二个数字:<input type="text" class="txt" name="b" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')"><br>
    <input type="submit" value="提交">
</form>
</body>
<body>
<h2>乘法</h2>
<form action="http://localhost:8080/math/multiply"method="get">
    第一个数字:<input type="text" class="txt" name="a" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')"><br>
    第二个数字:<input type="text" class="txt" name="b" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')"><br>
    <input type="submit" value="提交">
</form>
</body>
<body>
<h2>除法</h2>
<form action="http://localhost:8080/math/divide"method="get">
    第一个数字:<input type="text" class="txt" name="a" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')"><br>
    第二个数字:<input type="text" class="txt" name="b" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>
Zhangyz001
Zhangyz001
© 2025 软件园学生在线
Theme by Wing