С++ предлагает три типа с плавающей запятой: float, double и long double. Я редко использую с плавающей запятой в своем коде, но когда я это делаю, меня всегда улавливают предупреждения о безобидных строках типа
float PiForSquares = 4.0;
Проблема в том, что буква 4.0 - это двойной, а не плавающий - что раздражает.
Для целых типов у нас короткий int, int и long int, что довольно просто. Почему C не имеет короткого плавающего, плавающего и длинного плавающего? И где же произошло "двойное"?
EDIT: Кажется, что отношение между плавающими типами аналогично отношениям целых чисел. double должен быть по крайней мере таким же большим, как float, а длинный двойной - как минимум равным удвоенному. Никаких других гарантий точности/дальности не производится.