A 32 bit floating point number only have 7 significant digits. It's normal for a floating point number to be stored as the closest possible approximation of the specificed number.
A 32 bit floating point number simply can't store the value 1.1
exactly, the closest value that it can store is 1.100000023841858
.
For the seven significant digits, the number is still accurate, i.e. 1.100000
.
Normally when a floating point number is displayed, it's rounded according to the number of significant digits that it can accurately store. What you are using to display the numbers does obviously not do this rounding, that is why you are seeing the limitations in the precision of the numbers.
Assuming that those 32 bit floats are using the IIIE 754 standard, they can represent values in the range from 1.18 * 10-38 to 3.4 * 1038.