¡Hombre! 5,6843418861e-14 es muuuuy cercano a cero, ¿qué no? Seguramente nadie se preocupará por esas diferencias monetarias.
Pero bueno, lo que pasa es que los float no son precisos debido a la representación interna (binaria) en la computadora. En muchas situaciones, el nivel de precisión es tan alto que las diferencias son despreciables. No obstante, me parece que para cuestiones monetarias es mejor usar el tipo Currency (*).
(*) Lo cual no deja de ser curioso: podemos vivir con errar en 0.00000001 metros el punto de aterrizaje de una nave espacial, pero desde luego no nos perdonarán 0.00000001 céntimos que debamos.
// Saludos