Известно, что если выполнить преобразование (-1) TO INT, то получим 4 294 967 295 (минус единица в дополнительном коде). Тут все пока верно, но (4 294 967 295) TO FLOAT не даст -1, а получим тоже число 4 294 967 295!
С этим целыми числами в дополнительном коде, что-то надо делать.
Предлагаю макрос TO_FLOAT, который учитывает, что целые отрицательные числа представлены в дополнительном коде. И выполняет преобразования во всем диапазоне представления целых 32 битных чисел.