将 MonetaryAmount 转换为小单位长 (Javamoney)

Mic*_*rry 5 java java-money

使用 JSR-354 Java Money API(本例中为 Moneta),我可以轻松地MonetaryAmountlong小单位(本例中为便士)创建一个对象:

\n\n
MonetaryAmount amount = Money.ofMinor(Monetary.getCurrency("GBP"), 1234); //\xc2\xa312.34\n
Run Code Online (Sandbox Code Playgroud)\n\n

...但是我如何以同样的方式查询它的次要单位呢MonetaryAmount 我可以:

\n\n
amount.getNumber().longValue();\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n

Mic*_*rry 7

long minorUnits = monetaryAmount.query(MonetaryQueries.convertMinorPart()); //1234
Run Code Online (Sandbox Code Playgroud)

MonetaryQueries如果需要,也可以使用其他值来仅提取较小部分(34在上述情况下将返回。)