Изменить после добавления кода от OP:
UnitConverter
является абстрактным классом, поэтому необходимо создать его для создания конвертера для конкретных единиц, которые вы имеете в виду.
Если вы уже используете класс, производный от UnitConverter
, вам придется проверить его интерфейс, чтобы убедиться, что разработчик этого класса достаточно хорош, чтобы представить метод, который возвращает коэффициент умножения.
Рассмотрим некоторые классы jscience, полученные из UnitConverter
:
MultiplyConverter
имеет метод getFactor()
, который возвращает коэффициент, используемый при преобразовании.
AddConverter
имеет метод getOffset()
, который возвращает смещение, которое преобразователь добавляет в преобразование.
RationalConverter
, если я правильно понимаю, конвертирует, умножая конвертируемое значение на фактор двух чисел - дивиденд и делитель. В классе есть методы getDividend()
и getDivisor()
для возврата дивиденда и делителя, так что вы можете выполнить деление самостоятельно, чтобы приблизить частное.
Так что я думаю, что ваш код (ниже) ошибочен. Фактор НЕ делитель, как у вас здесь - это частное.
RationalConverter rationalConverter = (RationalConverter) unitConverter;
double divisor = rationalConverter.getDivisor().doubleValue();
double dividend = rationalConverter.getDividend().doubleValue();
factor = divisor;