全栈之路-小程序API-订单(order)设计

开始订单模块的开发,订单中的order表中

一、订单的校验参数

1、商品 无货

2、商品最大购买数量 总数量限制

3、SKU的最大限制

4、totalPrice 校验

5、finalTotalPrice 校验

6、是否拥有这个优惠券

7、优惠券是否过期

二、价格参数

1、前端

计算的订单价格

计算的订单折扣价(最终价)

2、后端

计算的订单价格

计算的订单折扣价(最终价)

3、浮点数的运算

  在价格中,涉及到折扣的时候会有浮点数的运算,就是通常我们所说的折扣之后的价格,这里为了保证数字的准确性,需要特别说明一下,关于金额中浮点数的运算

开始订单模块的开发,订单中的order表中

一、订单的校验参数

1、商品 无货

2、商品最大购买数量 总数量限制

3、SKU的最大限制

4、totalPrice 校验

5、finalTotalPrice 校验

6、是否拥有这个优惠券

7、优惠券是否过期

二、价格参数

1、前端

计算的订单价格

计算的订单折扣价(最终价)

2、后端

计算的订单价格

计算的订单折扣价(最终价)

3、浮点数的运算

  在价格中,涉及到折扣的时候会有浮点数的运算,就是通常我们所说的折扣之后的价格,这里为了保证数字的准确性,需要特别说明一下,关于金额中浮点数的运算

 (1)JavaScript中的浮点数运算

JavaScript中的浮点运算是不可信的,存在准确性的偏差

(2)Java中的浮点数运算

Java中的BigDecimal类型的浮点数的计算还算是相对来说准确的,但是最好在实例化的时候,传入字符串进行运算

(3)订单中的浮点数如何取舍

注意:在订单中,影响最大的是订单的成交数量,成交额并不会对最后的差额有太大的影响

  向上取整 例如:88.8893  88.8812 ==> 直接取成 88.89

  舍去 88.8893  88.8812 ==> 88.88

  四舍五入  就像我们数学中的运算

  四舍六入  待考虑

这里有专门一种银行家算法 IEEE,就是:

四舍六入五考虑

五后非空就进一

五后为空看奇偶

五前为偶应舍去

五前为奇要进一

 

 

 内容出处:七月老师《从Java后端到全栈》视频课程

七月老师课程链接:https://class.imooc.com/sale/javafullstack

 

posted @ 2020-11-07 16:16  ssc在路上  阅读(470)  评论(0编辑  收藏  举报