|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
动动手中是print()内的True有什么作用。如下:
def num(x):
result = 0
for each in x:
if not isinstance(each,str):
result = result +each
else:
continue
return result
print(num([1,2,2.1,2.3,'a','1',True]))
如上输出结果是 8.399999999999999
如果print()去掉True 输出结果为:7.3999999999999995为什么不一样了?
还有为什么输出的结果不是8.4而是8.399999999999999
True 不是字符串类型,而且 True 可以被解析为数字 1,所以多了 True 就多了 1。
这个是浮点数精度的问题,可以这样处理:
- def num(x):
- result = 0
- for each in x:
- if not isinstance(each, str):
- result = result + each
- else:
- continue
- return result
- print(round(num([1, 2, 2.1, 2.3, 'a', '1', True]), 3)) # 利用 round() 四舍五入
复制代码
|
|