鱼C论坛

 找回密码
 立即注册
查看: 1132|回复: 5

[已解决]函数文档

[复制链接]
发表于 2021-5-16 12:22:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> def exchangeRate(dollar):
        '''
        功能:汇率转换,美元 -> 人民币
        汇率:3.6
        日期:2020-5-16
        '''
        return dollar * 3.6

>>> exchangeRate(10)
36.0
>>> def exchangeRate(dollar):
        '''
        功能:汇率转换,美元 -> 人民币
        汇率:6.54
        日期:2020-5-16
        '''
        return dollar * 6.54

>>> exchangeRate(10)
但是当汇率为3.14的时候会出现后面的一大串数字?
>>> def exchangeRate(dollar):
        '''
        功能:汇率转换,美元 -> 人民币
        汇率:3.14
        日期:2020-5-16
        '''
        return dollar * 3.14

>>> exchangeRate(10)
31.400000000000002
>>>
最佳答案
2021-5-16 13:02:49
本帖最后由 柿子饼同学 于 2021-5-16 13:05 编辑
  1. >>> a = 0.1
  2. >>> b = 0.2
  3. >>> a + b
  4. 0.30000000000000004
  5. >>>
复制代码

楼上说的对,会存在误差
如果不想有误差可以用decimal模块,如下
  1. >>> import decimal as d
  2. >>> a = d.Decimal('0.1')               #注意,参数是一个字符串
  3. >>> b = d.Decimal('0.2')
  4. >>> print(a + b)
  5. 0.3
  6. >>>
复制代码

看,这时误差就消除了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-16 12:34:08 | 显示全部楼层
二进制存储小数会有误差
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-16 13:02:49 | 显示全部楼层    本楼为最佳答案   
本帖最后由 柿子饼同学 于 2021-5-16 13:05 编辑
  1. >>> a = 0.1
  2. >>> b = 0.2
  3. >>> a + b
  4. 0.30000000000000004
  5. >>>
复制代码

楼上说的对,会存在误差
如果不想有误差可以用decimal模块,如下
  1. >>> import decimal as d
  2. >>> a = d.Decimal('0.1')               #注意,参数是一个字符串
  3. >>> b = d.Decimal('0.2')
  4. >>> print(a + b)
  5. 0.3
  6. >>>
复制代码

看,这时误差就消除了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-16 14:03:13 | 显示全部楼层
叙白 发表于 2021-5-16 12:34
二进制存储小数会有误差

那么为什么其他的两位小数没有报错呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-16 14:04:06 | 显示全部楼层
柿子饼同学 发表于 2021-5-16 13:02
楼上说的对,会存在误差
如果不想有误差可以用decimal模块,如下
看,这时误差就消除了~

那为什么其他两位小苏没有报错呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-16 15:44:49 | 显示全部楼层
18798332503 发表于 2021-5-16 14:04
那为什么其他两位小苏没有报错呢

这就跟二进制存储有关,你想想,如果都有误差谁还要二进制呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 19:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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