@loganer You can sorta blame Intel for that one I think (plus there being a billion competing float standards amongst mainframe/minicomputers in the 70s and 80s). Since IBM PCs (could) have an 8087 which uses 80-bit precision internally (so long double could access that directly, and double and float downcasting when getting values out of the 8087), and then some companies extended IEEE floats to 128-bits in incompatible ways so that's also a long double option; and then IEEE made official 128-bit floats too late and incompatible with many of the other extensions, so another option for long double. Plus all the aforementioned completely-non-IEEE proprietary float formats used by the minicomputers C was originally developed and widely used on.
Given that C89 specifically locked it down to specifically IEEE 754 floats though, it would've really been nice if they'd at least guaranteed that float and double were the standard 32- and 64-bit floats, even if they did leave long double as a free-for-all.
(There is ISO/IEC TS 18661 implemented by pretty much all C compilers that adds _Float32, _Float64, and optionally _Float128 that are guaranteed to be the fixed-size IEEE 754 float types at least)