No ha mucho que debatí con Arduka sobre algo similar. Échale un vistazo al hilo, por si te puede servir de ayuda. Creo que el problema en resumen pudiera ser que has llegado al límite de precisión de float. ¿Necesitas trabajar con datos de esa precisión realmente? Prueba entonces con double para tener más precisión, aunque no esperes que un número decimal coincida siempre exactamente con un float o double binario.