I have specified the locale as en_US (both with javax.servlet.jsp.jstl.fmt.locale property and with <fmt:locale> tag, neither makes a difference), but currencies format with a ¤ character rather than a $. // THIS CODE DOES NOT WORK -- PRINTS ¤300.00 <fmt:locale value="en_US"/> <fmt:formatNumber value="300" type="currency" /> // THIS CODE WORKS -- PRINTS $300.00 <% java.text.Format format = java.text.NumberFormat.getCurrencyInstance (java.util.Locale.US); %> <%= format.format(new Integer(300)) %>