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