基于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>