I'm formatting some currency in Java. This piece outputs 9,99 €
final NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("nl", "BE"));
nf.setCurrency(EUR);
nf.format(new BigDecimal("9.99"));
but one of our payment providers, which returns amounts preformatted, outputs € 9,99
Which is correct for nl-BE
?
And more programming related, if it turns out the payment provider, and not Java, is correct, how do I fix the Java way without hacks per locale (in the real code the Dutch in Belgium locale is not hardcoded)
If Wikipedia is to be believed, neither is incorrect:
In Belgian Dutch, the euro sign can go before or after the amount, the latter being more common.