float, в современных системах, является 32-битным типом с плавающей точкой.
double в современных системах - это 64-битный тип с плавающей запятой.
Точность с плавающей запятой намного меньше 64-битной с плавающей запятой, но все еще очень полезна для скорости и потому, что она занимает меньше байтов оперативной памяти.
Теперь с 64-битной системой разница между float и double намного менее заметна, но в прошлом они могли быть действительно разными.
Вы всегда должны находить компромисс между производительностью и точностью: выбор между double и float именно такой: хотите ли вы высокую точность или низкую точность, но лучшую производительность?
В 3D-играх мы обычно используем float, в приложениях исчисления мы обычно используем double.
Посмотрите, подходит ли вам точность double, если нет, я бы посоветовал вам поискать в библиотеке C ++ числа с исключительной точностью, однако, чтобы продолжить наше обсуждение производительности, производительность этих объектов действительно плохая по сравнению с нативной double или float.