Если вам нужно принудительно установить значения к одному и тому же размеру, вы можете создать представление, которое использует только целые числа известных размеров. Вы конвертируете свои числа с плавающей точкой в этот формат, чтобы сохранить их, и конвертируете их обратно в числа с плавающей точкой, когда читаете их.
См. , как я могу извлечь мантиссу двойного для объяснения AProgrammer функции frexp()
, которая разложит число с плавающей точкой на его (целочисленный) показатель степени и (двойной) мантиссу. Комментарии, следующие за этим ответом, объяснят, как преобразовать мантиссу в целое число.
Вы можете сохранить целочисленную мантиссу и показатель степени, которые будут иметь фиксированную длину. Затем вы можете прочитать их обратно и использовать функцию ldexp()
для воссоздания исходного плавающего числа (с небольшой ошибкой, конечно).