float number1 =12.1F;
double number2 = (double) number1;
MessageBox.Show(number2.ToString());
gives the result 12.1000003814697.Float is 32 bit size type and double is a 64 bit type. Sow I am going from a smaller to bigger size type. Why does it change the value of the variable?