函数文档
>>> 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:05 编辑
>>> a = 0.1
>>> b = 0.2
>>> a + b
0.30000000000000004
>>>
楼上说的对,会存在误差
如果不想有误差可以用decimal模块,如下>>> import decimal as d
>>> a = d.Decimal('0.1') #注意,参数是一个字符串
>>> b = d.Decimal('0.2')
>>> print(a + b)
0.3
>>>
看,这时误差就消除了~{:10_256:} 叙白 发表于 2021-5-16 12:34
二进制存储小数会有误差
那么为什么其他的两位小数没有报错呢{:10_254:} 柿子饼同学 发表于 2021-5-16 13:02
楼上说的对,会存在误差
如果不想有误差可以用decimal模块,如下
看,这时误差就消除了~
那为什么其他两位小苏没有报错呢{:10_266:} 18798332503 发表于 2021-5-16 14:04
那为什么其他两位小苏没有报错呢
这就跟二进制存储有关,你想想,如果都有误差谁还要二进制呢
页:
[1]