开始订单模块的开发,订单中的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后端到全栈》视频课程