Consider the literals 0.2, 0.2F, and 0.2L. Each presents the same decimal fraction, but floating-point representation can make its effective value differ from the written value, and suffixes select different types. Without a suffix, a decimal floating-point constant has type double; f or F selects float, while l or L selects long double. TAKEAWAY: a literal has a value, a type, and a binary representation. section 5.3
Why 0.2 is not always exactly 0.2
On one machine, 0.2 has the effective value 0.2000000000000000111. Consequently, 0.2 and 0.2000000000000000111 can denote the same value. Decimal fractional digits may be rounded or truncated when represented in binary. section 5.3

