No, me refiero a que si el valor es 45 su length es igual a dos, por lo tanto se cumple la condición y entra a ejecutar las sentencias. La siguiente vez que pones el cursor, si el valor es 4.5 su length no es igual a dos, por lo tanto no debería entrar a ejecutar de nuevo las sentencias. Eso te indica que la condición que has puesto no es correcta, dado que devuelve true tanto cuando el length es 2 como cuando es 3.
Por eso te sugerí que averigues lo que devuelve checkStr.length cada vez que se ejecuta el script. Pídele un alert(checkStr.length)
saludos