一个数乘以100后结果与真实结果不符
print(round((72 - 18618 / 365) / 72, 4))
print(round((72 - 18618 / 365) / 72, 4) * 100)
该数乘以100后结果正确
Python中使用浮点数做运算时就可能会产生不确定尾数。
https://www.jianshu.com/p/870b2200b6c9
这是浮点数精度误差造成的,正常现象。具体原因你可以搜索一下浮点数的知识就知道了
所以一般编码都不允许直接进行浮点数相等判断的,因为存在精度误差,实际上并不完全相等,而是用两个浮点数的差值的绝对值小于一个较小数的方式。比如
a = 0.3
b = 0.3
if(fabs(a-b) < 1e-6)
print('a等于b')
???一个数乘上100大小不会改变吗
猜测是乘以100后类型发生了改变,但我用type后只看到都是float类型。
直接输出0.2916*100结果也是错的。