除了JSR-275 (被拒绝和放弃)和度量单位API (似乎没有任何产品质量的实现)之外,有没有其他Java库处理度量单位?
发布于 2021-05-08 05:44:43
我已经编写了一个不使用静态排版的units库(正如我在许多实际应用程序中遇到的那样,这将比我希望的库更麻烦)。它被设计为处理基于字符串的单元以及更清晰的定义单元。一些受支持的功能包括:
值的
Units.convert(3,"m","mm");Units.convert(3,SiBaseUnit.METER,"mm");
都会返回3000
.
基于字符串的单位的
Units.simplify("kg^3 m^4 s^-6 A^-1");
将返回"J^2 T"
.
Units.inContext("lx s",UnitContextMatch.COMPATIBLE,PhysicsContext.PHOTOMETRY)
将返回包含("luminous exposure")
.的可导航集
LevelUnit.BEL.inReferenceTo(1,Unit.of("mV"));//自动判断ref type -> root power LevelUnit.BEL.inReferenceTo(1,Unit.of("W"),LevelUnitReferenceType.POWER);//显式指定类型Unit.of("ln(re 1 nA)") == LevelUnit.NEPER.inReferenceTo(1,Unit.of("nA"));//
如果不相关,
Units.convert(3,"m^2 this_is_not_a_unit","mm^2 this_is_not_a_unit");
将返回3e6
,因为在转换的两端未知单位this_is_not_a_unit
是相同的。
Units.factor("kg","t");
将返回1e-3
.
Units.equivalent(1,"s","min");
将返回false,因为1min
与1s
不同。另一方面,检查可兑换
Units.convertible("s","min");
将返回true
.
常量通过Constant
接口实现,该接口支持例如:
// (3±0.2) mole Constant.of(3,0.2,"mole");
//光在真空中(2±0)秒的距离常数,取值为PhysicsConstant.SPEED_OF_LIGHT_IN_VACUUM.mul(2,0,摩尔);//每(电子)质量的基本电荷常数PhysicsConstant.ELEMENTARY_CHARGE.div(PhysicsConstant.ELECTRON_MASS);常数c= Constant.of(3,0.2,“摩尔”);PhysicsConstant.SHIELDING_DIFFERENCE_OF_T_AND_P_IN_HT.mul(c);
Constant
接口从jatex模块为Texable
接口提供默认实现,以便常量可以轻松返回正确的LaTeX代码。发布于 2017-07-17 06:13:55
https://stackoverflow.com/questions/12542727
复制相似问题