ACCNCC: вообще, читаю про дюйм - говорится, мол в разных странах у него разное значение. Это наталкивает на мысль, что браузер и стандарты для устройств берут разные значения дюйма, от туда и погрешность, но это лишь предположение. Поищу что еще можно сделать, но, скорее всего, это максимум.
keslo: логически верно так и должно быть, но я немного сократил код по кол-ву символов. Переменная o и так находится в области видимости конструктора, нет смысла ее передавать.