Decimal stores the exact value, where as flat stores an approximation.
Quote from an MSDN article:
Approximate numeric data types do not store the exact values specified for many numbers; they store an extremely close approximation of the value
What is the example of value where an approximate value will be stored? For example say I store 100.15; when I retrieve I get the same value back. What is an example of value to show the approximation?