Несколько практический ответ на этот вопрос заключается в том, что он является плавающим, потому что США не используют метрическую систему, она измеряется в дюймах. Остальной мир использует счетчики. Наличие 25,4 дюймов в метре не дает хороших круглых чисел. Форматы файлов изображений используют разные стандарты, по иронии судьбы, наиболее распространенный формат изображения, использующий метры вместо дюймов, был создан американской компанией. Формат BMP-файла использует пиксели на метр.
Более технически правильный ответ, пожалуй, состоит в том, что разрешение является конструктивным параметром датчика изображения, который использовался для создания изображения. Физическое свойство, такое как расстояние между ячейками в ПЗС-датчике. И на него воздействует объектив, используемый для проецирования сцены на датчик. Ни датчик, ни объектив не создаются с равномерно делимым числом на дюйм. Или на метр. Чипные заводы используют размеры элементов, которые измеряются в метрах. Ну, нанометры. Фокусное расстояние объектива часто регулируется, и процессор изображения не учитывает это.
Таким образом, на практике это just a reference number, и фактическое значение выбрано с хорошим круглым числом в дюймах, которое пропорционально количеству пикселей на изображении. Это гарантирует, что у вас есть шанс воспроизвести изображение на другом устройстве, например на принтере, с примерно одинаковым физическим размером. Очень общие значения - 72 и 96, значение по умолчанию для мониторов (независимо от размера монитора) и тот, который вы получаете при создании изображения с помощью программы рисования. 300 и 600 являются общими, разрешение дешевых сканеров. Держите его в два раза пропорционально сумме денег, которую вы потратили.
Единственный раз, когда я когда-либо видел его как дробное число, было в программе конвертации изображений в стиле hokey, которая смотала преобразование метра в дюйм. Усечение его вместо округления. Хранение его в dbase как целое отлично, когда вы раунд. Это никогда не бесконечность или NaN.
Кто решил, что эти поля будут плавать? Сам? Библиотека, которую вы используете? Какой API? – Nayuki
@NayukiMinase, .NET framework, класс изображения –
Oh! Потому что «разрешение» относится к вещам типа точек на дюйм, а не к размерам пикселей. Мы знаем, что физические величины являются действительными числами, а не чистыми целыми числами. – Nayuki