51Testing软件测试论坛
标题:
【原创】Python 解一个数学题
[打印本页]
作者:
TomChen
时间:
2022-9-27 14:17
标题:
【原创】Python 解一个数学题
题目:商品0.07一个,每满0.1元减0.08,请问要买多少个,可以使得商品金额-优惠金额=3.99元
刚拿到题目,用纸笔来解,是 285,但这个答案是错的。
用Python 解:
for num in range(200, 300):
x = 0.07 * num
y = int(x/0.1)*0.08
s = ((int)((x-y)*100))/100
print(num, x, y, s)
if s== 3.99:
print("=========="+str(num))
break
答案:281
要注意两个要点:
1.优惠次数要取整,就是:int(x/0.1)
2. Python 和 Java
浮点数用用二进制表示的时候只能表示近似值,虽然我们看到的是 0.645,实际上 Python 存储的是 0.645000000000000017763568394002504646778106689453125,Python 是按照 IEEE754 标准存储浮点数的
要这样算,来取小数点后两位:s = ((int)((x-y)*100))/100
引用:
https://www.51cto.com/article/718888.html
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2