我有一个程序,可以计算以米平方为单位的多边形的面积,我想使用javax.measure库将其转换为其他单位(根据用户需要)。

Measure<Double, Area> a = Measure.valueOf(area, SI.SQUARE_METRE);


因此,如果我想要公顷,可以使用:

a.doubleValue(NonSI.HECTARE);


但唯一的其他Area数量是Are

虽然我可以轻松地除以1000 * 1000以得出KM平方,但是当我尝试获得Acres或Sq Miles或其他常见面积单位时,会变得更加混乱。

最佳答案

NonSI.MILE.divide(8.0).times...这样的代码片段告诉您在解决方案中使用的是未完成的旧JSR 275和诸如JScience 4的实现。

有什么理由比正式的javax.measure JSR 363更喜欢它?

上面所有这些都有一些变化(例如UnitFormat现在是API接口,JSR 363中的代码将是SimpleUnitFormat.getInstance().label(acre, "acre");)在JSR 363中可以很好地工作。与275不同,SI System和其他单位系统。而且有几个主要的开源项目已经在使用新标准。试试看。

关于java - 使用javax.measure将平方米转换为平方公里,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45411605/

10-09 12:56