51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

测试开发精英班,通向高级软件测试工程师想做银行测试,你不得不知道的项目为王,自动化测试提升加速器 !企业级云端项目实战云集,晋升测试开发复合型人才
【131期】:软件系统测试之如何做数据质量管理?免费领价值398元的测试课程 测试人职业发展! 【活动】为视频UP主打CALL,互动领福利!
查看: 486|回复: 0

【原创】Python 解一个数学题

[复制链接]

该用户从未签到

发表于 2022-9-27 11:49:55 | 显示全部楼层 |阅读模式
题目:商品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



回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2023-2-7 08:52 , Processed in 0.065230 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表