Почему у int и float разный диапазон?
Потому что значения int на всём промежутке идут равномерно, с шагом 1, то у float шаг между соседними значениями меняется: в окрестности единицы он примерно 10^(-7), а в окрестности миллиарда - около 100. Приблизительно можно сказать, что равномерно идёт логарифм float. За счёт этого (выигрыш в точности на малых числах, но заметный проигрыш на больших) они и расширили диапазон.
Играясь с соотношением числа бит на мантиссу и порядок, можно менять диапазон на точность, и наоборот.
Потому что мантисса.