遇见的就是能整除但是浮点运算后出现一堆小数
In [1]: count = 6564.5
In [3]: import math
In [4]: max_x = math.ceil(6564.5/8.05)
In [11]: temp = (count-257*8.05)/6.15
In [12]: temp
Out[12]: 730.9999999999999
In [13]: (count-257*8.05)
Out[13]: 4495.65
In [14]: 4495.65/6.15
Out[14]: 730.9999999999999
解决办法有两个:一个是用Decimal来进行计算,这个是专用于金融数据的计算,但是用这个比较损耗性能,如果不是牵扯到财务数据,不建议用,第二个是用round来限制小数位。我这是随手写的小的玩的东西,就用了第二种
In [15]: round(4495.65/6.15,2)
Out[15]: 731.0
整体:
'''
单价是8.05和6.15元,金额合计是6564.5元,能推出来数量吗
数量得是整数
没有总数量
'''
import math
count = 6564.5
max_x = math.ceil(6564.5/8.05)
temp = (count-11*8.05)/6.15
print(type(temp))
finish = []
for i in range(0,max_x):
temp = round((count-i*8.05)%6.15,2)
temp2 = round((count-i*8.05)/6.15,2)
if temp2%1 == 0.0:
finish.append((i,temp2))
print("8.05的数量{},6.15的数量{},求余{}结果不对".format(i,temp2,temp))
print('*'*100)
print(finish)