Floating point 在Boost.Units中强制自定义基于单位的数量之间进行基于有理数的转换

Floating point 在Boost.Units中强制自定义基于单位的数量之间进行基于有理数的转换,floating-point,data-conversion,rational-numbers,boost-units,Floating Point,Data Conversion,Rational Numbers,Boost Units,我定义了一个自定义的单位系统,它源自boost::units::si::time。 子单位是使用boost::units::make_scaled_unit定义的,因此转换因子是使用boost::units::scale和boost::units::static_rational指定的,例如boost::units::scale 一般来说,如果不是因为boost::units::scale::value_类型为“double”,我不会抱怨。因此,数量之间的所有运行时转换都涉及浮点算术,而我的自定

我定义了一个自定义的单位系统,它源自boost::units::si::time。 子单位是使用boost::units::make_scaled_unit定义的,因此转换因子是使用boost::units::scale和boost::units::static_rational指定的,例如boost::units::scale

一般来说,如果不是因为boost::units::scale::value_类型为“double”,我不会抱怨。因此,数量之间的所有运行时转换都涉及浮点算术,而我的自定义单位之间的比率都是整数,例如1个苹果等于18个橙子,使用基于有理数的因子进行转换就足够了

有没有一种方法可以用其他方法覆盖用于单位转换的浮点算法? 谢谢

编辑: 1.我的数量是使用整数类型定义的