You can get a thorough answer in the classic 1991 paper "What every computer scientist should know about floating-point arithmetic".
If you want just a quick answer to why 1.4 is not an exact double but 1.5 is, the key is that doubles are internally represented in base 2. 1.5 is actually "1.1" in base 2, but 1.4 is "1.011001100110011001100110011001100110011001100110011001100110011001...". Since the binary expansion of 1.4 is infinite and a double keeps only 53 significant bits, some rounding will happen, and in this case that makes the number a bit less than 1.4.
So what you are observing is similar to what happens if you write 1/3 to 8 decimal digits. You'll get 0.33333333, which is a bit less than 1/3.