hay un JSR 275 específico (javax.measure) con JScience como RI (Implementación de referencia). Por ejemplo la conversión de 100 millas a kilómetros es fácil como:
UnitConverter toKilometers = MILE.getConverterTo(KILOMETER);
double km = toKilometers.convert(Measure.valueOf(100, MILE).doubleValue(MILE));
(tenga en cuenta que las unidades son seguros todo tipo a-tiempo de compilación, un imho característica asesino)
El reverso puede ser fácil:
UnitConverter toMiles1 = KILOMETER.getConverterTo(MILE);
o SuperEasy como:
UnitConverter toMiles2 = toKilometers.inverse();
importaciones NB:
import javax.measure.Measure;
import javax.measure.converter.UnitConverter;
import javax.measure.quantity.Length;
import static javax.measure.unit.NonSI.*;
import static javax.measure.unit.SI.*;
Puede echar un vistazo a este https://github.com/mbe24/sius ya que admite medidor, milla de longitud y kilogramo, libra de masa. Es compatible con la adición y lo hace * implícita * tipo de conversión. Está tipado estáticamente, por lo que los errores de conversión son visibiles en el momento de la compilación :) Añadiré más características :) – mike