NumberFormat doesn't seem to care about the scale of a BigDecimal, so given tailing zeros are lost:
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
nf.setMaximumFractionDigits(Integer.MAX_VALUE);
BigDecimal a = new BigDecimal("1234.56789"); //scale=5
BigDecimal b = new BigDecimal("1234.567890"); //scale=6
a.toString(); //1234.56789
b.toString(); //1234.567890 <-- ✅ decimal place is preserved
nf.format(a); //1.234,56789
nf.format(b); //1.234,56789 <-- ❌ decimal place is lost
Unless there is a better way: