在一个订单系统中,需要限制订单的数量不超过库存的百分比。例如某商品库存为20吨,配置订单不能超过库存的30%。解题思路如下比较奇数/总库存与配置。但是除法运算可能会出现无穷无尽,比如1/3=0.3333333.....除法需要保留小数点后的数字。当时我计算的时候保留两位小数,用(5.99/20=0.29)<0.3,成功了。使用(6.01/20=0.30)=0.3,有问题。问题的原因是因为涉及到保留小数,6.01/20=0.3005,转换为0.30,所以判断错误。解决方法一:小数点保留4位小数。如果用两位小数来比较,除法的结果需要保留两倍的小数位,也就是四位小数。方案二:改为乘法。第一种方案的缺点是保留的小数位数需要根据比较数的小数点进行更新,不是很通用。我们需要把除法改成乘法,因为程序不会涉及小数保留,然后返回到订单系统的计算,库存20吨,订单限制不能超过30%,所以每个订单的数量不能超过20*30%=6。然后将序号与6进行比较。总结一下,除法需要保留精度,会出现精度不足的情况,所以需要多保留几位小数。除法可以转化为乘法,乘法的结果可以用来做比较。如果您觉得文章对您有帮助,请点个赞吧!
