a+b
a = 1.01b = 1
a+b=2.00999999998
为什么啊 精度问题,正常现象
你用下面这个就正常了
print(a+b)
大马强 发表于 2021-8-9 19:35
你用下面这个就正常了
谢谢,hhh bonaking 发表于 2021-8-9 20:19
谢谢,hhh
问题解决的话,请设置最佳答案 1.01 + 1这是十进制表示的方法,结果是2.01,但计算机内部使用二进制保存数字,整数部分好说就是10(二进制),小数部分 要采用乘2取整,顺排每回得到的整数的方法,接着用小数部分继续乘2取整,直到小数部分为0,然而 大部分十进制小数 不可能完整用二进制表示,所以,存在计算机中的二进制小数只是一个近似值,再将它转换为十进制小数,只能是一个近似的十进制数 chinesestcx 发表于 2021-8-10 08:42
1.01 + 1这是十进制表示的方法,结果是2.01,但计算机内部使用二进制保存数字,整数部分好说就是10(二进制 ...
就好比0.01 你永远无法用0.01 * 2将小数部分变为0,不过,python的官方文档指出,这个并不是语言的缺陷,而是二进制表示十进制的数的固有特性 用decimal函数运算
页:
[1]