本文介绍了Java公制单位转换库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个应用程序,它将需要执行许多单位转换(公制到英制,英制到公制).

I have an application that will need to perform a number of unit conversions (metric to Imperial, Imperial to metric).

是否存在执行此操作的现有Java库?还是我需要自己动手? (我最初的Google搜索被证明是毫无用处的.)

Is there an existing Java library that does this? Or will I need to roll my own? (My initial Google searches proved moderately useless.)

推荐答案

有一个特定的 JSR 275 (javax.measure),其中 JScience 作为RI(参考实现).例如,将100英里转换为公里很容易,

there is a specific JSR 275 (javax.measure) with JScience as RI (Reference Implementation). For example converting 100 Miles to kilometers is easy as:

UnitConverter toKilometers = MILE.getConverterTo(KILOMETER);
double km = toKilometers.convert(Measure.valueOf(100, MILE).doubleValue(MILE));

(请注意,所有单元在编译时都是安全类型,这是杀手级功能,恕我直言)

(note that units are all type safe a compile-time, a killer feature imho)

反过来很容易:

UnitConverter toMiles1 = KILOMETER.getConverterTo(MILE);

或超级容易为:

UnitConverter toMiles2 = toKilometers.inverse();

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.*;

这篇关于Java公制单位转换库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-06 05:51