这个并非是数据本身有多余小数造成,而是运算中的浮点误差造成的。人类使用的是十进制,计算机使用的二进制,运算时计算机先要将十进制的数字换算为二进制,再把二进制的数字转换为十进制,所以=MOD(9.7,1)返回的并非是真正的0.7,而是0.699999999999999这种数值,在和真正的0.7比较时,自然会返回FALSE。解决方法是改为=ROUND(MOD(9.7,1),1)=0.7,相当于是把0.699999999999999这种数值四舍五入变成0.7,再和0.7比较,返回TRUE。浮点误差所有软件均存在,不仅是excel的问题。
要验证这个问题,只需要输入=ROUNDDOWN(MOD(A2,1),1),相当于舍弃了0.699999999999999中从第二位小数开始的所有小数,返回0.6。或直接将单元格格式设为数值,显示15位小数,可直接显示0.699999999999999。