I fixed it setting properly the pattern
parameter.
<fmt:formatNumber value="${MyJavaClass.amount}" type="number" pattern="#.00"/>
This was not enough:
<fmt:formatNumber value="${MyJavaClass.amount}" type="number" maxFractionDigits="2"/>
The issue related to only one digit was still there (i.e. "199.3" was still "199.3", rather than "199.30")