Обеспечение рациональных преобразований между количествами на основе пользовательских единиц в Boost.Units
У меня есть определенная система единиц измерения, которая происходит от boost:: units:: si:: time. Дочерние единицы определяются с помощью boost::units::make_scaled_unit, следовательно, коэффициенты преобразования указываются с помощью boost:: units:: scale и boost:: units:: static_rational, например, boost::units::scale<1020, boost::unit::static_rational<1> >.
В общем, я бы не стал жаловаться, если бы не "double": boost::units::scale::value_type - "double". В результате все преобразования времени выполнения между величинами включают в себя арифметику с плавающей запятой, в то время как отношения между моими пользовательскими единицами измерения являются целыми числами, например, 1 яблоко равно 18 апельсинам, и преобразований с использованием рациональных факторов было бы достаточно.
Есть ли способ переопределить арифметику с плавающей запятой, используемую для конвекции единиц, чем-то еще? Благодарю.
РЕДАКТИРОВАТЬ: 1. мои количества определяются с помощью целочисленных типов.