阿彪本彪 发表于 2021-8-18 12:06:10

请问一下有没有大佬知道我这为啥是这个

序列那节课的动动手第一题

阿彪本彪 发表于 2021-8-21 14:12:39

谢谢各位大佬的帮忙,太感谢了

冬雪雪冬 发表于 2021-8-18 12:10:25

浮点数运算有误差

gdmao002 发表于 2021-8-18 12:12:26

sum = num #这个写错了 如果是列表内的整型和浮点数求和 应该写 sum = 0 而不是取第一个的值当做和的开始值

白two 发表于 2021-8-18 12:26:10

首先,求和多加了一个数,应该以 sum = 0 开始,

其次,小数的加减是有偏差的,因为虽然在你看来是10进制的运算,但是它会把十进制数字转化为二进制数字进行运算,所以会出现一些例外,比如出现无限循环小数啥的,这是计算机计算原理导致的,不用管他:

>>> 0.3-0.2
0.09999999999999998

你要是对这种运算结果不满意,可以先同乘一个10的n次方,把两个加数变成整数,最后把结果同样除以一个一样的数就行了,如下:

>>> a = 0.3*100 - 0.2*100
>>> a = a/100
>>> a
0.1

3236654291 发表于 2021-8-18 13:40:39

也可以看一下用decimal函数运算

kogawananari 发表于 2021-8-18 13:43:06

sum都变紫色了还敢用sum当变量名{:10_313:}

18765915617 发表于 2021-8-18 14:28:54

很多语言都这样。需要对结果的格式做规范。round(x,2),x是你原来输出的内容,2表示指定的小数位是2位。

airsnowman 发表于 2021-8-20 17:20:30

不要用sum做变量

叼辣条闯世界 发表于 2021-8-21 09:42:47

浮点数运算有误差

阿彪本彪 发表于 2021-8-21 14:09:45

冬雪雪冬 发表于 2021-8-18 12:10
浮点数运算有误差

谢谢大佬
页: [1]
查看完整版本: 请问一下有没有大佬知道我这为啥是这个