软件园学生在线

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

登录与注册

后端一 张明宇

  • 张 明宇
  • 2023-10-29
  • 0

基于Springbootqie支持四则运算的API


产品说明:

使用方法:
在postman中输入正确网址后,输入
/add?a&b表加法;
/sub?a&b表减法;
/mul?a&b表乘法;
/div?a&b表除法。

特殊情况:
1.为了解决数据溢出的问题,使用BigDicimal代替double进行运算;
2.为了判断数据类型是否有误,用intanceof筛查;
3.为了避免做除法时结果为无限不循环小数时出现异常,用setscale限制小数位数。手机上计算器会保留15位小数,故这里也保留15位小数;
4.准备用inscansof判断数据类型,但发现在输入参数的时候已经寄了。So就没有用到;
除数为零时发现输出的是infinity,就没有把它纳入特殊情况。

学习历程:

一开始把学长学姐的录制视频看了又看,但代码仍不怎么符合要求。
然后我在网上找了一些文档开拓思路,像
BigDicimal
https://www.cnblogs.com/zhangyinhua/p/11545305.html ;
intanceof
https://blog.csdn.net/mingyuli/article/details/120411767 ;
HTML
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element ;
等等。
非常感谢学长学姐们为我解答问题!


代码展示:

MainController
package com.example.demo.controller;

import com.example.demo.service.MainService
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;

@RestController
public class MainController {

@Autowired
MainService n;

@GetMapping("/add")
public BigDecimal add(@RequestParam BigDecimal a, @RequestParam BigDecimal b)
{
return n.add(a, b);
}

@GetMapping("/sub")
public BigDecimal sub(@RequestParam BigDecimal a, @RequestParam BigDecimal b)
{
    return n.sub(a, b);
}

@GetMapping("/mul")
public BigDecimal mul(@RequestParam BigDecimal a, @RequestParam BigDecimal b)
{
    return n.mul(a, b);
}

@GetMapping("/div")
public BigDecimal div(@RequestParam BigDecimal a, @RequestParam BigDecimal b)throws Exception
{
    return n.div(a, b);
}

}


MainService

package com.example.demo.service;

import com.example.demo.pojo.Course;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;

@Service
public class MainService {

public BigDecimal add (BigDecimal a, BigDecimal b) {
return a.add(b);
}

public BigDecimal sub (BigDecimal a, BigDecimal b) {
        return a.subtract(b);
}

public BigDecimal mul (BigDecimal a, BigDecimal b) {
        return a.multiply(b);
}

public BigDecimal div (BigDecimal a, BigDecimal b) {
       return a.divide(b).setScale(15,BigDecimal.ROUND_HALF_UP)

}

HTML

<title>四则运算</title>

<h2>加法</h2>

    第一个数字: <br>
    第二个数字: <br>

<h2>减法</h2>

    被减数: <br>
    减数: <br>

<h2>乘法</h2>

    第一个数字: <br>
    第二个数字: <br>

<h2>除法</h2>

    被除数: <br>
    除数: <br>
张 明宇
张 明宇
© 2025 软件园学生在线
Theme by Wing