То, что вам нужно, может быть выполнено несколькими различными способами.
Например, в c ++ у вас обычно есть плавающие одинарной точности (4 байта) в качестве наименьшей доступной точности, хотя я не удивлюсь, если есть другие пакеты, которые обрабатывают значения с плавающей точкой меньшей точности.
Поэтому, если вы используете значения с плавающей запятой двойной точности и можете обходиться с меньшей точностью, вы можете переключиться на меньшую точность.
Теперь, в зависимости от диапазона значений, которые вы хотите сохранить, вы также можете использовать представление с фиксированной точкой, но вам нужно будет знать нюансы сдвига и маскирования битов и т. Д. Но, Еще одно дополнительное преимущество этого подхода заключается в том, что он может ускорить выполнение вашей программы, поскольку арифметика с фиксированной (целой) точкой намного быстрее, чем арифметика с плавающей точкой.
Выбор параметров зависит от ваших данных, которые вы хотите сохранить, и от того, насколько вы удобны с бинарной арифметикой более низкого уровня.