Excel嵌套IF与“AND”运算符行为怪异

我在Excel电子表格中有一个奇怪的情况。 我正在应用一个简单的嵌套IF语句如下:

= IF( AND(A1-INT(A1)>=0.3,A1-INT(A1)<=0.7),INT(A1)+0.5, IF( AND(A1-INT(A1)>=0,A1-INT(A1)<=0.2),INT(A1), IF( AND(A1-INT(A1)>=0.8,A1-INT(A1)<=0.9),INT(A1)+1, "NON-CHECKED" ) ) ) 

假设如果“A1”包含一个值32.9,结果应该是33.它工作正常,直到“63.9”的值。 只要A1包含“64.9”的值,它就不检查最后一个条件并打印出“未检查”。

这是一个奇怪的事情,它工作正常,直到63.9的值,然后开始变得FALSE。

我也尝试了Office Suit和Google Docs中的相同公式。

我在这里错过了什么?

你可以在这里testing公式:

示例电子表格

谢谢。

请尝试用ROUND(MOD(A1,1),10)replaceA1-INT(A1)。 这似乎适用于小于10 ^ 9的数字。 如果你使用更高的数字,你应该降低精度。

你不是刚刚凑到最近的0.5吗? MROUND函数做到这一点

=MROUND(A1,0.5)