将 MonetaryAmount 转换为长的次要单位 (Javamoney)

Convert MonetaryAmount to long of minor units (Javamoney)

使用 JSR-354 Java Money API(在本例中为 Moneta),我可以轻松地从 long 个小单位创建一个 MonetaryAmount 对象(在这种情况下便士):

MonetaryAmount amount = Money.ofMinor(Monetary.getCurrency("GBP"), 1234); //£12.34

...但是如何以相同的方式查询此 MonetaryAmount back 的次要单位?我能做到:

amount.getNumber().longValue();

...但这只给出了 主要 单位,完全截断了次要单位。

long minorUnits = monetaryAmount.query(MonetaryQueries.convertMinorPart()); //1234

如果需要,MonetaryQueries 上的其他值也可用于 提取 次要部分(这将 return 34以上情况。)