Difference between float(2,2) and float() in mysql

I created a table in MySQL with a column of type float(2,2) and inserted value 10 into the same, but I found that the value stored is 0.99.

What is the reason behind this ? If we use a column of type float(m, n) in MySQL where 'm' and 'n' are integers, then what should I watch out for when storing values in this column ?


float(2,2) means "use two digits, of which two are used after the decimal point".

Hence, you can go from -0.99 to 0.99. You can't insert 10 into this column, you'd need atleast two digits before the comma (so float(4,2) or float(2,0)).

MySQL permits a nonstandard syntax: FLOAT(M,D) or REAL(M,D) or DOUBLE PRECISION(M,D). Here, “(M,D)” means than values can be stored with up to M digits in total, of which D digits may be after the decimal point. For example, a column defined as FLOAT(7,4) will look like -999.9999 when displayed. MySQL performs rounding when storing values, so if you insert 999.00009 into a FLOAT(7,4) column, the approximate result is 999.0001.


MySQL permits a nonstandard syntax: FLOAT(M,D) or REAL(M,D) or DOUBLE PRECISION(M,D). Here, “(M,D)” means than values can be stored with up to M digits in total, of which D digits may be after the decimal point.