float m_floatValue;
int m_nValue = 5;
m_floatValue = m_nValue * .5 ; // it give warning message.

: warning C4244: '=' : conversion from 'double' to 'float', possible loss of data

I am not dealing with 'double' at all, and the operation I am doing is quite reasonable. Why does the compiler give this error and how to correct it.