当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 浮点输出为3.0,整数为2
帖子发表于 : 2012-10-29 10:18 
头像

注册: 2007-11-02 13:46
帖子: 970
送出感谢: 0 次
接收感谢: 1
代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
money = float(raw_input("输入你的钱数:"))
coins_25 = money // 0.25
coins_10 = (money % 0.25) // 0.10
coins_5 = ((money % 0.25) % 0.10) // 0.05
coins_1 = ((money % 0.25) % 0.10)*100 % 5
print "一分硬币数量:", coins_1
print "%.2f元可以兑换成%d个25分硬币,%d个10分硬币,%d个5分硬币和%d个1分硬币" % (money,
        coins_25, coins_10, coins_5, coins_1)
引用:
>>> ================================ RESTART ================================
>>>
输入你的钱数:0.96
一分硬币数量: 1.0
0.96元可以兑换成3个25分硬币,2个10分硬币,0个5分硬币和0个1分硬币
>>> ================================ RESTART ================================
>>>
输入你的钱数:0.16
一分硬币数量: 1.0
0.16元可以兑换成0个25分硬币,1个10分硬币,1个5分硬币和1个1分硬币
>>> ================================ RESTART ================================
>>>
输入你的钱数:0.18
一分硬币数量: 3.0
0.18元可以兑换成0个25分硬币,1个10分硬币,1个5分硬币和2个1分硬币
>>> ================================ RESTART ================================

为毛float(coins_1)和int(coins_1)会有这种差别?


_________________
明察,慎思,笃行


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 浮点输出为3.0,整数为2
帖子发表于 : 2012-10-29 11:04 
头像

注册: 2010-06-16 1:05
帖子: 14676
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
精度问题。。。其实那个所谓的1.0离1还差那么一点点,所以。。。
你把coins_1拿来减去整数就能看到差多少了。
第一个差4.66293670343e-15才能到1


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 浮点输出为3.0,整数为2
帖子发表于 : 2012-10-29 12:10 
头像

注册: 2007-11-02 13:46
帖子: 970
送出感谢: 0 次
接收感谢: 1
枫叶饭团 写道:
精度问题。。。其实那个所谓的1.0离1还差那么一点点,所以。。。
你把coins_1拿来减去整数就能看到差多少了。
第一个差4.66293670343e-15才能到1

那使用round四舍五入一下就解决了,至少现在貌似正常了,不知道有没有什么隐患。


_________________
明察,慎思,笃行


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译