【发布时间】:2011-05-13 18:10:21
【问题描述】:
当您在 2 个实体之间进行转换时,通常通过 UnitConverter 进行。我应该如何找出转换因子是多少?例如:
public static final Unit<Length> KILOMETRE = METER.times(1000);
public static final Unit<Length> CENTIMETRE = METRE.divide(100);
我想以编程方式从转换器接口获取转换系数(即 1000 b/w KILOMETER 和 METER 或在 CENTIMETER 到 METRE 的情况下为 1/100)
我不确定如何从 UnitConverter 界面获取此信息。
EDIT1
protected double getConvFactor(Unit<Length> from, Unit<Length> to) {
double factor = -1;
UnitConverter unitConverter = from.getConverterTo(to);
if (unitConverter instanceof MultiplyConverter) {
MultiplyConverter multiplyConverter = (MultiplyConverter) unitConverter;
factor = multiplyConverter.getFactor();
} else if (unitConverter instanceof AddConverter) {
AddConverter addConverter = (AddConverter) unitConverter;
factor = addConverter.getOffset();
} else if (unitConverter instanceof RationalConverter) {
RationalConverter rationalConverter = (RationalConverter) unitConverter;
double divisor = rationalConverter.getDivisor().doubleValue();
double dividend = rationalConverter.getDividend().doubleValue();
factor = divisor;
}
}
【问题讨论】:
-
-ve 投票是否有原因