número flotante no es el número esperado después de la resta

Tengo la siguiente declaración:

float diff = tempVal - m_constraint.getMinVal();

tempVal se declara como un flotador y elgetMinVal() devuelve un valor flotante.

Tengo la siguiente impresión:

diff = 0.099999905, tempVal = 5.1, m_constraint.getMinVal () = 5.0

Espero eldif es0.1 pero no el numero anterior. ¿como hacer eso?