Я копаюсь в проблеме значений с плавающей запятой. Я видел отличную страницу на
https://www.h-schmidt.net/FloatConverter/IEEE754.html
и прочитал много постов. Я пришел к выводу и хотел бы знать, правильно ли это.
Существует компромисс между точностью, которую вы можете получить, и насколько большой является целая часть вашего числа.
Если решите, что мне нужны только 2 десятичных знака точности, диапазон значений, которые я могу сохранить и получить без ошибок, достигает 32767,99 (по крайней мере, это из эмпирического теста с преобразователем выше). Вместо этого, если я полностью откажусь от десятичных знаков, я могу получить до 16777216. Правильно ли заключить, что с двумя десятичными числами у меня может быть 3276800 уникальных значений, и без каких-либо десятичных знаков я могу хранить до 16777217 уникальных значений?
Это можно перефразировать следующим образом: учитывая, что меня интересует хранение самого широкого диапазона уникальных значений без ошибок, и учитывая, что я обязан использовать плавающие числа, правильно ли говорить, что отсутствие десятичных дробей - это путь к go ?
РЕДАКТИРОВАТЬ: то, что я написал о повышении до 32767,99, является ложным, я видел это с более эмпирическими тестами. Таким образом, 32767.2 хранится как 32767.19921875. На практике возникает вопрос: если я связан с использованием чисел с плавающей точкой, и я не могу позволить себе эти ошибки, правильно ли, что без десятичных знаков я могу правильно представлять значения от 0 до 16777216?